TasksComparer
SaveOptions.TasksComparer property
Gets or sets the comparer to sort tasks on Gantt chart and Task Sheet chart.
public IComparer<Task> TasksComparer { get; set; }
Examples
Shows how to set a comparer to sort tasks on Gantt chart and/or Task Sheet chart.
public void SortTasksByColumnInGanttChartExample()
{
var project = new Project(DataDir + "Project2.mpp");
SaveOptions options = new PdfSaveOptions
{
Timescale = Timescale.Months,
TasksComparer = new TasksNameComparer()
};
project.Save(OutDir + "SortedByNames_out.pdf", options);
options.TasksComparer = new TasksDurationComparer();
project.Save(OutDir + "SortedByDurations_out.pdf", options);
}
private class TasksNameComparer : IComparer<Task>
{
public int Compare(Task x, Task y)
{
// ReSharper disable once ConvertIfStatementToSwitchStatement
// ReSharper disable once ConvertIfStatementToSwitchExpression
if (x == null && y == null)
{
return 0;
}
if (x == null)
{
return -1;
}
return y == null ? 1 : string.Compare(x.Get(Tsk.Name), y.Get(Tsk.Name), StringComparison.Ordinal);
}
}
private class TasksDurationComparer : IComparer<Task>
{
public int Compare(Task x, Task y)
{
// ReSharper disable once ConvertIfStatementToSwitchStatement
if (x == null && y == null)
{
return 0;
}
if (x == null)
{
return -1;
}
if (y == null)
{
return 1;
}
var durX = x.Get(Tsk.Duration);
var durY = y.Get(Tsk.Duration);
return durX.TimeSpan.CompareTo(durY.TimeSpan);
}
}
See Also
- class Task
- class SaveOptions
- namespace Aspose.Tasks.Saving
- assembly Aspose.Tasks