Class OutlineCodeCollection
Contents
[
Hide
]OutlineCodeCollection class
Represents a collection of OutlineCode
objects.
public class OutlineCodeCollection : IList<OutlineCode>
Properties
Name | Description |
---|---|
Count { get; } | Gets the number of elements contained in this collection. |
IsReadOnly { get; } | Gets a value indicating whether this collection is read-only; otherwise, false. |
Item { get; set; } | Returns or sets the element at the specified index. |
Methods
Name | Description |
---|---|
Add(OutlineCode) | Adds the specified item to this collection. |
Clear() | Removes all items from this collection. |
Contains(OutlineCode) | Returns true if the specified item is found in this collection; otherwise, false. |
CopyTo(OutlineCode[], int) | Copies the elements of this collection to the specified array, starting at the specified array index. |
GetEnumerator() | Returns an enumerator for this collection. |
IndexOf(OutlineCode) | Determines the index of the specified item in this collection. |
Insert(int, OutlineCode) | Inserts the specified item at the specified index. |
Remove(OutlineCode) | Removes the first occurrence of a specific object from this collection. |
RemoveAt(int) | Removes an item at the specified index. |
Examples
Shows how to work with outline code collections.
var project = new Project(DataDir + "OutlineCodes2003.mpp");
var collector = new ChildTasksCollector();
TaskUtils.Apply(project.RootTask, collector, 0);
for (var i = 0; i < collector.Tasks.Count; i++)
{
var current = collector.Tasks[i];
if (current.Get(Tsk.Id) == 0)
{
continue;
}
Console.WriteLine("Print outline codes for the " + current.Get(Tsk.Name) + " task.");
Console.WriteLine("Count of outline codes: " + current.OutlineCodes.Count);
foreach (var outlineCode in current.OutlineCodes)
{
Console.WriteLine("Field Id: " + outlineCode.FieldId);
Console.WriteLine("Value Id: " + outlineCode.ValueId);
Console.WriteLine("Value Guid: " + outlineCode.ValueGuid);
Console.WriteLine();
}
}
// add a custom outline code definition
var outlineCodeDefinition = new OutlineCodeDefinition { FieldId = ((int)ExtendedAttributeTask.OutlineCode3).ToString("D"), Alias = "My Outline Code" };
project.OutlineCodes.Add(outlineCodeDefinition);
// create outline code
var value = new OutlineValue { Type = OutlineValueType.Text, Value = "Val1", Description = "Descr1", ValueId = 1 };
outlineCodeDefinition.Values.Add(value);
var codeOne = new OutlineCode { FieldId = outlineCodeDefinition.FieldId, ValueId = 1, ValueGuid = value.ValueGuid.ToString("D").ToUpperInvariant() };
var task = project.RootTask.Children.GetByUid(2);
// one can check that collection is not read only
if (!task.OutlineCodes.IsReadOnly)
{
task.OutlineCodes.Add(codeOne);
}
var codeZero = new OutlineCode { FieldId = outlineCodeDefinition.FieldId, ValueId = 0, ValueGuid = value.ValueGuid.ToString("D").ToUpperInvariant() };
task.OutlineCodes.Insert(0, codeZero);
var code2 = new OutlineCode { FieldId = outlineCodeDefinition.FieldId, ValueId = 2, ValueGuid = value.ValueGuid.ToString("D").ToUpperInvariant() };
// insert code with 2 in a wrong position
task.OutlineCodes.Insert(0, code2);
// fix it
var indexOf = task.OutlineCodes.IndexOf(code2);
task.OutlineCodes.RemoveAt(indexOf);
// insert code with 2 in a right position
task.OutlineCodes.Insert(2, code2);
// check that the code was inserted
Console.WriteLine("Is outline codes contains the inserted value: " + task.OutlineCodes.Contains(code2));
// ...
// work with outline codes
// ...
var otherProject = new Project(DataDir + "OutlineCodes2003.mpp");
var otherTask = otherProject.RootTask.Children.GetById(2);
// add a custom outline code definition
outlineCodeDefinition = new OutlineCodeDefinition { FieldId = ((int)ExtendedAttributeTask.OutlineCode3).ToString("D"), Alias = "My Outline Code" };
otherProject.OutlineCodes.Add(outlineCodeDefinition);
// create outline code
var otherValue = new OutlineValue { Type = OutlineValueType.Text, Value = "Val1", Description = "Descr1", ValueId = 1 };
outlineCodeDefinition.Values.Add(otherValue);
var outlineCodes = new OutlineCode[task.OutlineCodes.Count];
task.OutlineCodes.CopyTo(outlineCodes, 0);
foreach (var code in outlineCodes)
{
otherTask.OutlineCodes.Add(code);
}
// ...
// work with outline codes
// ...
// remove outline code
otherTask.OutlineCodes.RemoveAt(0);
while (otherTask.OutlineCodes.Count > 0)
{
otherTask.OutlineCodes.Remove(otherTask.OutlineCodes[0]);
}
// clear all values at once
task.OutlineCodes.Clear();
See Also
- class OutlineCode
- namespace Aspose.Tasks
- assembly Aspose.Tasks