TimephasedDataCollection Class |
Namespace: Aspose.Tasks
The TimephasedDataCollection type exposes the following members.
Name | Description | |
---|---|---|
![]() ![]() | TimephasedDataCollection | Initializes a new instance of the TimephasedDataCollection class. |
Name | Description | |
---|---|---|
![]() ![]() | Count |
Gets the number of objects contained in this TimephasedDataCollection object.
|
![]() ![]() | IsReadOnly | Gets a value indicating whether the ICollectionT is read-only. |
![]() | Item |
Returns the element at the specified index. The set accessor is not supported.
property to set timephased data.
|
Name | Description | |
---|---|---|
![]() ![]() | Add |
Adds TimephasedData instance to this collection object.
|
![]() ![]() | AddRange |
Adds a collection of TimephasedData instances to this collection object.
|
![]() ![]() | Clear |
Removes all items from the TimephasedDataCollection.
|
![]() ![]() | Contains |
Determines whether the TimephasedDataCollection contains a specific value.
|
![]() ![]() | CopyTo |
Copies the elements of the TimephasedDataCollection to an Array,
starting at a particular Array index.
|
![]() | Equals | (Inherited from Object.) |
![]() | Finalize | (Inherited from Object.) |
![]() ![]() | GetEnumerator |
Returns an enumerator for this collection.
|
![]() | GetHashCode | (Inherited from Object.) |
![]() | GetType | (Inherited from Object.) |
![]() | MemberwiseClone | (Inherited from Object.) |
![]() ![]() | Remove |
Removes TimephasedData instance from this collection object.
|
![]() ![]() | SelectBetweenStartAndFinish |
Selects all time phases between startTime and finishTime. Has O(log n) complexity in average case.
|
![]() ![]() | ToList |
Converts the TimephasedDataCollection object to a list of TimephasedData objects.
|
![]() | ToString | (Inherited from Object.) |
var project = new Project(DataDir + "Project1.mpp"); var resource = project.Resources.Add("Resource 1"); resource.Set(Rsc.Type, ResourceType.Work); var resource2 = project.Resources.Add("Resource 2"); resource2.Set(Rsc.Type, ResourceType.Work); var task = project.RootTask.Children.Add("Task 1"); task.Set(Tsk.Start, new DateTime(2019, 11, 11, 8, 0, 0)); task.Set(Tsk.Duration, project.GetDuration(24, TimeUnitType.Hour)); task.Set(Tsk.Work, project.GetDuration(3d, TimeUnitType.Hour)); task.Set(Tsk.Finish, new DateTime(2019, 11, 13, 17, 0, 0)); var task2 = project.RootTask.Children.Add("Task 2"); task2.Set(Tsk.Start, new DateTime(2019, 11, 11, 8, 0, 0)); task2.Set(Tsk.Duration, project.GetDuration(24, TimeUnitType.Hour)); task2.Set(Tsk.Work, project.GetDuration(3d, TimeUnitType.Hour)); task2.Set(Tsk.Finish, new DateTime(2019, 11, 13, 17, 0, 0)); var assignment = project.ResourceAssignments.Add(task, resource); assignment.Set(Asn.Start, new DateTime(2019, 11, 11, 8, 0, 0)); assignment.Set(Asn.Work, project.GetDuration(3, TimeUnitType.Hour)); assignment.Set(Asn.Finish, new DateTime(2019, 11, 13, 17, 0, 0)); var assignment2 = project.ResourceAssignments.Add(task2, resource2); assignment2.Set(Asn.Start, new DateTime(2019, 11, 11, 8, 0, 0)); assignment2.Set(Asn.Work, project.GetDuration(3, TimeUnitType.Hour)); assignment2.Set(Asn.Finish, new DateTime(2019, 11, 13, 17, 0, 0)); // set contoured work contour assignment.Set(Asn.WorkContour, WorkContourType.Contoured); Console.WriteLine("Is timephased data collection read-only?: " + assignment.TimephasedData.IsReadOnly); // clear generated tds assignment.TimephasedData.Clear(); var td = new TimephasedData { Start = new DateTime(2019, 11, 11, 8, 0, 0), Finish = new DateTime(2019, 11, 11, 9, 0, 0), Uid = assignment.Get(Asn.Uid), Unit = TimeUnitType.Hour, Value = "PT1H0M0S", TimephasedDataType = TimephasedDataType.AssignmentRemainingWork }; assignment.TimephasedData.Add(td); var list = new List<TimephasedData>(); var td2 = new TimephasedData { Start = new DateTime(2019, 11, 12, 8, 0, 0), Finish = new DateTime(2019, 11, 12, 9, 0, 0), Uid = assignment.Get(Asn.Uid), Unit = TimeUnitType.Hour, Value = "PT1H0M0S", TimephasedDataType = TimephasedDataType.AssignmentRemainingWork }; var td3 = new TimephasedData { Start = new DateTime(2019, 11, 13, 8, 0, 0), Finish = new DateTime(2019, 11, 13, 9, 0, 0), Uid = assignment.Get(Asn.Uid), Unit = TimeUnitType.Hour, Value = "PT1H0M0S", TimephasedDataType = TimephasedDataType.AssignmentRemainingWork }; list.Add(td2); list.Add(td3); assignment.TimephasedData.AddRange(list); // one can filter the collection by type and date range Console.WriteLine("Print filtered tds:"); IList<TimephasedData> filteredTds = assignment.TimephasedData.SelectBetweenStartAndFinish( TimephasedDataType.AssignmentRemainingWork, new DateTime(2019, 11, 11, 0, 0, 0), new DateTime(2019, 11, 13)); foreach (var data in filteredTds) { Console.WriteLine("Start: " + data.Start); Console.WriteLine("Finish: " + data.Finish); Console.WriteLine("Timephased Data Type: " + data.TimephasedDataType); Console.WriteLine(); } Console.WriteLine("--------------------------"); Console.WriteLine(); // ... // add a wrong td and then delete it var td4 = new TimephasedData { Start = new DateTime(2019, 11, 13, 8, 0, 0), Finish = new DateTime(2019, 11, 13, 9, 0, 0), Uid = assignment.Get(Asn.Uid), Unit = TimeUnitType.Hour, Value = "PT0H0M1S", // wrong value TimephasedDataType = TimephasedDataType.AssignmentRemainingWork }; assignment.TimephasedData.Add(td4); // ... // delete the wrong td item if (assignment.TimephasedData.Contains(td4)) { assignment.TimephasedData.Remove(td4); } // ... assignment.TimephasedData.AddRange(list); // iterate over timephased items Console.WriteLine("Print all timephased items:"); Console.WriteLine("Timephased data count: " + assignment.TimephasedData.Count); foreach (var item in assignment.TimephasedData) { Console.WriteLine("Start: " + item.Start); Console.WriteLine("Finish: " + item.Finish); Console.WriteLine("Timephased Data Type: " + item.TimephasedDataType); Console.WriteLine(); } // copy tds to another assignment var timephasedDatas = new TimephasedData[assignment.TimephasedData.Count]; assignment.TimephasedData.CopyTo(timephasedDatas, 0); assignment2.TimephasedData.Clear(); foreach (var data in timephasedDatas) { assignment2.TimephasedData.Add(data); } // the collection can be converted to a plain list List<TimephasedData> tds = assignment.TimephasedData.ToList(); // lets remove tds one by one foreach (var timephasedData in tds) { assignment.TimephasedData.Remove(timephasedData); }