RateByDateCollection Class |
Represents a collection which mappings of
DateTime to
Rate objects.
Inheritance HierarchySystemObject System.Collections.GenericSortedDictionaryDateTime,
Rate Aspose.TasksRateByDateCollection
Namespace:
Aspose.Tasks
Assembly:
Aspose.Tasks (in Aspose.Tasks.dll) Version: 21.10
Syntaxpublic class RateByDateCollection : SortedDictionary<DateTime, Rate>
Public Class RateByDateCollection
Inherits SortedDictionary(Of DateTime, Rate)
public ref class RateByDateCollection : public SortedDictionary<DateTime, Rate^>
type RateByDateCollection =
class
inherit SortedDictionary<DateTime, Rate>
endThe RateByDateCollection type exposes the following members.
Constructors
Properties|
| Name | Description |
|---|
 | Comparer | (Inherited from SortedDictionaryDateTime, Rate.) |
 | Count | (Inherited from SortedDictionaryDateTime, Rate.) |
 | Item | (Inherited from SortedDictionaryDateTime, Rate.) |
 | Keys | (Inherited from SortedDictionaryDateTime, Rate.) |
 | Values | (Inherited from SortedDictionaryDateTime, Rate.) |
Methods|
| Name | Description |
|---|
 | Add | (Inherited from SortedDictionaryDateTime, Rate.) |
 | Clear | (Inherited from SortedDictionaryDateTime, Rate.) |
 | ContainsKey | (Inherited from SortedDictionaryDateTime, Rate.) |
 | ContainsValue | (Inherited from SortedDictionaryDateTime, Rate.) |
 | CopyTo | (Inherited from SortedDictionaryDateTime, Rate.) |
 | Equals | (Inherited from Object.) |
 | Finalize | (Inherited from Object.) |
 | GetEnumerator | (Inherited from SortedDictionaryDateTime, Rate.) |
 | GetHashCode | (Inherited from Object.) |
 | GetType | (Inherited from Object.) |
 | MemberwiseClone | (Inherited from Object.) |
 | Remove | (Inherited from SortedDictionaryDateTime, Rate.) |
 | ToString | (Inherited from Object.) |
 | TryGetValue | (Inherited from SortedDictionaryDateTime, Rate.) |
ExamplesShows how to work with rate collections.
var project = new Project(DataDir + "Project1.mpp");
var resource = project.Resources.Add("Test Resource 1");
resource.Set(Rsc.Type, ResourceType.Work);
resource.Set(Rsc.Work, project.GetDuration(2d, TimeUnitType.Hour));
resource.Set(Rsc.StandardRate, 20m);
var rate1 = resource.Rates.Add(new DateTime(2019, 1, 1, 8, 0, 0));
rate1.RatesTo = new DateTime(2019, 11, 11, 17, 0, 0);
rate1.StandardRate = 5m;
rate1.StandardRateFormat = RateFormatType.Hour;
var rate2 = resource.Rates.Add(new DateTime(2019, 11, 12, 8, 0, 0), RateType.B);
rate2.RatesTo = new DateTime(2019, 12, 31, 17, 0, 0);
rate2.StandardRate = 10m;
rate2.StandardRateFormat = RateFormatType.Hour;
Console.WriteLine("Print rates of '{0}' resource: ", resource.Rates.ParentResource.Get(Rsc.Name));
Console.WriteLine("Count of rates: {0}", resource.Rates.Count);
Console.WriteLine("Is rate collection read-only: {0}", resource.Rates.IsReadOnly);
foreach (KeyValuePair<RateType, RateByDateCollection> sortedRates in resource.Rates)
{
foreach (KeyValuePair<DateTime, Rate> pair in sortedRates.Value)
{
var rate = pair.Value;
Console.WriteLine("Rates From: " + rate.RatesFrom);
Console.WriteLine("Rates To: " + rate.RatesTo);
Console.WriteLine("Rate Table: " + rate.RateTable);
Console.WriteLine();
}
}
var rateToUpdate = resource.Rates[RateType.B][new DateTime(2019, 11, 12, 8, 0, 0)];
rateToUpdate.RatesTo = new DateTime(2020, 12, 31, 17, 0, 0);
Console.WriteLine("Rates From: " + rateToUpdate.RatesFrom);
Console.WriteLine("Rates To: " + rateToUpdate.RatesTo);
List<Rate> rates = resource.Rates.ToList(RateType.A);
for (var i = 0; i < rates.Count; i++)
{
var rateToRemove = rates[i];
resource.Rates.Remove(rateToRemove);
}
Console.WriteLine("Iterate over the rates after remove the A-typed values: ");
List<Rate> list = resource.Rates.ToList();
foreach (var rt in list)
{
Console.WriteLine("Rates From: " + rt.RatesFrom);
Console.WriteLine("Rates To: " + rt.RatesTo);
Console.WriteLine("Rate Table: " + rt.RateTable);
}
See Also