Class ResourceAssignmentCollection

ResourceAssignmentCollection class

Represents a collection of ResourceAssignment objects.

public class ResourceAssignmentCollection : IList<ResourceAssignment>

Properties

NameDescription
Count { get; }Gets the number of objects contained in the ResourceAssignmentCollection.
IsReadOnly { get; }Gets a value indicating whether this collection is read only.
Item { get; set; }Returns the element at the specified index.
ParentProject { get; }Gets the parent project of the ResourceAssignmentCollection object.

Methods

NameDescription
Add(ResourceAssignment)This is the stub implementation of ICollection’s Add method, that only throws NotSupportedException
Add(Task, Resource)Adds new assignment to the ResourceAssignmentCollection.
Add(Task, Resource, decimal)Adds new assignment to the ResourceAssignmentCollection.
Add(Task, Resource, double)Adds new assignment to the ResourceAssignmentCollection.
GetByUid(int)Returns an assignment with the specified uid.
GetEnumerator()Returns an enumerator for this collection.
Remove(ResourceAssignment)Removes specified assignment from collection, if it is not read-only, otherwise throws NotSupportedException.
RemoveAt(int)Removes assignment at specified index, if collection is not read-only, otherwise throws NotSupportedException.
ToList()Converts the ResourceAssignmentCollection object to a list of ResourceAssignment objects.

Examples

Shows how to work with resource assignment collections.

var project = new Project(DataDir + "TemplateResource2010.mpp");

var task = project.RootTask.Children.Add("Task 1");
var resource = project.Resources.Add("Resource 1");
var assignment = project.ResourceAssignments.Add(task, resource);
assignment.Set(Asn.Start, new DateTime(2019, 9, 23, 9, 0, 0));
assignment.Set(Asn.Work, project.GetWork(40));
assignment.Set(Asn.Finish, new DateTime(2019, 9, 27, 18, 0, 0));

var assignmentWithUnits = project.ResourceAssignments.Add(task, resource, 1d);
assignmentWithUnits.Set(Asn.Start, new DateTime(2019, 9, 23, 9, 0, 0));
assignmentWithUnits.Set(Asn.Work, project.GetWork(40));
assignmentWithUnits.Set(Asn.Finish, new DateTime(2019, 9, 27, 18, 0, 0));

var assignmentWithCost = project.ResourceAssignments.Add(task, resource);
assignmentWithCost.Set(Asn.Start, new DateTime(2019, 9, 23, 9, 0, 0));
assignmentWithCost.Set(Asn.Work, project.GetWork(40));
assignmentWithCost.Set(Asn.Finish, new DateTime(2019, 9, 27, 18, 0, 0));

Console.WriteLine("Print assignments for the project: " + project.ResourceAssignments.ParentProject.Get(Prj.Name));
Console.WriteLine("Resource assignment count: " + project.ResourceAssignments.Count);
foreach (var resourceAssignment in project.ResourceAssignments)
{
    Console.WriteLine("Task Name: " + resourceAssignment.Get(Asn.Task).Get(Tsk.Name));
    Console.WriteLine("Uid: " + resourceAssignment.Get(Asn.Uid));
    Console.WriteLine("Start: " + resourceAssignment.Get(Asn.Start));
    Console.WriteLine("Work: " + resourceAssignment.Get(Asn.Work));
    Console.WriteLine("Finish: " + resourceAssignment.Get(Asn.Finish));
}

var assignmentByUid = project.ResourceAssignments.GetByUid(2);
Console.WriteLine("Assignment By Uid Start: " + assignmentByUid.Get(Asn.Start));

// work with assignment...
Console.WriteLine("Is resource assignment collection read-only?: " + project.ResourceAssignments.IsReadOnly);

// convert the collection into a list
List<ResourceAssignment> resourceAssignments = project.ResourceAssignments.ToList();

// iterate over the list
foreach (var ra in resourceAssignments)
{
    Console.WriteLine(ra.ToString());
}

See Also