ExtendedAttributeDefinitionCollection Class

Represents a collection of ExtendedAttributeDefinition objects.
Inheritance Hierarchy
SystemObject
  Aspose.TasksExtendedAttributeDefinitionCollection

Namespace:  Aspose.Tasks
Assembly:  Aspose.Tasks (in Aspose.Tasks.dll) Version: 21.10
Syntax
public class ExtendedAttributeDefinitionCollection : IList<ExtendedAttributeDefinition>, 
	ICollection<ExtendedAttributeDefinition>, IEnumerable<ExtendedAttributeDefinition>, IEnumerable

The ExtendedAttributeDefinitionCollection type exposes the following members.

Properties
  NameDescription
Public propertyCode exampleCount
Gets the number of elements contained in this collection.
Public propertyCode exampleIsReadOnly
Gets a value indicating whether this collection is read-only.
Public propertyCode exampleItem
Returns or sets the element at the specified index.
Public propertyCode exampleParentProject
Gets a parent project for the ExtendedAttributeDefinitionCollection instance.

Return Value

Type: 
returns a parent project for this collection.
Methods
  NameDescription
Public methodCode exampleAdd
Adds the specified item to this collection.
Public methodCode exampleClear
Removes all items from this collection.
Public methodCode exampleContains
Returns true if the specified item is found in this collection; otherwise, false.
Public methodCode exampleCopyTo
Copies the elements of this collection to the specified array, starting at the specified array index.
Public methodEquals (Inherited from Object.)
Protected methodFinalize (Inherited from Object.)
Public methodCode exampleGetById
Returns an extended attribute definition by id
Public methodCode exampleGetEnumerator
Returns an enumerator for this collection.
Public methodGetHashCode (Inherited from Object.)
Public methodGetType (Inherited from Object.)
Public methodCode exampleIndexOf
Determines the index of the specified item in this collection.
Public methodCode exampleInsert
Inserts the specified item at the specified index.
Protected methodMemberwiseClone (Inherited from Object.)
Public methodCode exampleRemove
Removes the first occurrence of a specific object from this collection.
Public methodCode exampleRemoveAt
Removes an item at the specified index.
Public methodCode exampleToList
Converts this ExtendedAttributeDefinitionCollection object to a list containing instances of the ExtendedAttributeDefinition class.
Public methodToString (Inherited from Object.)
Examples
Shows how to use extended attribute definition collections.
var project = new Project(DataDir + "ReadTaskExtendedAttributes.mpp");

if (!project.ExtendedAttributes.IsReadOnly)
{
    if (project.ExtendedAttributes.Count > 0)
    {
        // clear extended attribute definitions
        project.ExtendedAttributes.Clear();
    }
}

// create extended attribute definition for a task
var taskDefinition = ExtendedAttributeDefinition.CreateTaskDefinition(CustomFieldType.Start, ExtendedAttributeTask.Start7, "Start 7");
project.ExtendedAttributes.Add(taskDefinition);

Console.WriteLine("Iterate over extended attributes of " + project.ExtendedAttributes.ParentProject.Get(Prj.Name) + " project: ");
foreach (var attribute in project.ExtendedAttributes)
{
    Console.WriteLine("Attribute Alias: " + attribute.Alias);
    Console.WriteLine("Attribute CfType: " + attribute.CfType);
    Console.WriteLine();
}

Console.WriteLine();

// work with extended attribute definitions...
var resourceDefinition = ExtendedAttributeDefinition.CreateResourceDefinition(CustomFieldType.Cost, ExtendedAttributeResource.Cost5, "My cost");

if (!project.ExtendedAttributes.Contains(resourceDefinition))
{
    project.ExtendedAttributes.Add(resourceDefinition);
}

// work with extended attribute definitions...
var resourceDefinition2 = ExtendedAttributeDefinition.CreateResourceDefinition(CustomFieldType.Number, ExtendedAttributeResource.Cost1, "My Cost 2");

if (project.ExtendedAttributes.IndexOf(resourceDefinition2) < 0)
{
    project.ExtendedAttributes.Insert(0, resourceDefinition2);
}

// work with extended attribute definitions...

// remove extended attribute by index
project.ExtendedAttributes.RemoveAt(0);

Console.WriteLine("Print project's extended attributes: ");
Console.WriteLine("Count of project's extended attribute definitions: " + project.ExtendedAttributes.Count);

// use collection index access
Console.WriteLine("Attribute 1 Alias: " + project.ExtendedAttributes[0].Alias);
Console.WriteLine("Attribute 1 CfType: " + project.ExtendedAttributes[0].CfType);
Console.WriteLine("Attribute 2 Alias: " + project.ExtendedAttributes[1].Alias);
Console.WriteLine("Attribute 2 CfType: " + project.ExtendedAttributes[1].CfType);

var otherProject = new Project();

// copy attributes to other project
var attributes = new ExtendedAttributeDefinition[project.ExtendedAttributes.Count];
project.ExtendedAttributes.CopyTo(attributes, 0);

foreach (var attribute in attributes)
{
    otherProject.ExtendedAttributes.Add(attribute);
}

Console.WriteLine();
Console.WriteLine("Iterate over other project's extended attributes: ");
foreach (var attribute in otherProject.ExtendedAttributes)
{
    Console.WriteLine("Attribute Alias: " + attribute.Alias);
    Console.WriteLine("Attribute CfType: " + attribute.CfType);
    Console.WriteLine();
}

// remove all extended attribute definitions
List<ExtendedAttributeDefinition> definitions = project.ExtendedAttributes.ToList();
foreach (var definition in definitions)
{
    project.ExtendedAttributes.Remove(definition);
}
See Also