AvailabilityPeriodCollection.CopyTo
Contents
[
Hide
]AvailabilityPeriodCollection.CopyTo method
Copies the elements of this collection to the specified array, starting at the specified array index.
public void CopyTo(AvailabilityPeriod[] array, int arrayIndex)
Parameter | Type | Description |
---|---|---|
array | AvailabilityPeriod[] | the specified one-dimensional array to copy elements to |
arrayIndex | Int32 | the zero-based index of the specified array at which copying begins. |
Examples
Shows how to work with availability period collection of resource.
public void WorkWithAvailabilityPeriodCollection()
{
var project = new Project(DataDir + "UpdateResourceData.mpp");
var resource = project.Resources.GetById(1);
resource.AvailabilityPeriods.Clear();
// Add availability periods (2012 and 2014 years) to the new resource
IEnumerable<AvailabilityPeriod> periods = this.GetPeriods();
foreach (var period in periods)
{
if (!resource.AvailabilityPeriods.IsReadOnly)
{
resource.AvailabilityPeriods.Add(period);
}
}
var period2013 = new AvailabilityPeriod { AvailableFrom = new DateTime(2013, 1, 1), AvailableTo = new DateTime(2013, 12, 12), AvailableUnits = 0.81 };
if (!resource.AvailabilityPeriods.Contains(period2013))
{
resource.AvailabilityPeriods.Insert(1, period2013);
}
Console.WriteLine("Count of availability periods: " + resource.AvailabilityPeriods.Count);
foreach (var period in resource.AvailabilityPeriods)
{
Console.WriteLine("Available From: " + period.AvailableFrom);
Console.WriteLine("Available To: " + period.AvailableTo);
Console.WriteLine("Available Units: " + period.AvailableUnits);
Console.WriteLine();
}
var periodsToCopy = new AvailabilityPeriod[resource.AvailabilityPeriods.Count];
resource.AvailabilityPeriods.CopyTo(periodsToCopy, 0);
var otherResource = project.Resources.GetById(2);
otherResource.AvailabilityPeriods.Clear();
foreach (var period in periodsToCopy)
{
otherResource.AvailabilityPeriods.Add(period);
}
var period2015 = new AvailabilityPeriod { AvailableFrom = new DateTime(2015, 1, 1), AvailableTo = new DateTime(2015, 12, 12), AvailableUnits = 0.50 };
var period2016 = new AvailabilityPeriod { AvailableFrom = new DateTime(2016, 1, 1), AvailableTo = new DateTime(2016, 12, 12), AvailableUnits = 0.53 };
if (otherResource.AvailabilityPeriods.IndexOf(period2015) < 0)
{
otherResource.AvailabilityPeriods.Add(period2015);
}
if (otherResource.AvailabilityPeriods.IndexOf(period2016) < 0)
{
otherResource.AvailabilityPeriods.Add(period2016);
}
// update available units for period of 2014 year
otherResource.AvailabilityPeriods[otherResource.AvailabilityPeriods.Count - 2].AvailableUnits = 0.90;
// remove period of 2013
otherResource.AvailabilityPeriods.Remove(period2013);
// remove period of 2011
otherResource.AvailabilityPeriods.RemoveAt(0);
Console.WriteLine("Print resource availability periods of the resource: " + otherResource.Get(Rsc.Name));
Console.WriteLine("Count of availability periods: " + resource.AvailabilityPeriods.Count);
foreach (var period in resource.AvailabilityPeriods)
{
Console.WriteLine("Available From: " + period.AvailableFrom);
Console.WriteLine("Available To: " + period.AvailableTo);
Console.WriteLine("Available Units: " + period.AvailableUnits);
Console.WriteLine();
}
}
private IEnumerable<AvailabilityPeriod> GetPeriods()
{
var periods = new List<AvailabilityPeriod>();
var period = new AvailabilityPeriod { AvailableFrom = new DateTime(2012, 1, 1), AvailableTo = new DateTime(2012, 12, 12), AvailableUnits = 0.99 };
periods.Add(period);
var period2 = new AvailabilityPeriod { AvailableFrom = new DateTime(2014, 1, 1), AvailableTo = new DateTime(2014, 12, 12), AvailableUnits = 0.94 };
periods.Add(period2);
return periods;
}
See Also
- class AvailabilityPeriod
- class AvailabilityPeriodCollection
- namespace Aspose.Tasks
- assembly Aspose.Tasks