public static UsageMonitorItem Create(DateTime startTime, DateTime endTime, int stepSizeInMinutes) { UsageMonitorItem item = new UsageMonitorItem { TimeRangeInclusiveStartExclusiveEnd = new TimeRange { StartTime = startTime, EndTime = endTime }, StepSizeInMinutes = stepSizeInMinutes }; item.InitializeSteppedCollections(); return item; }
public static UsageMonitorItem[] GetTarget_NewMonitoringItems(IContainerOwner owner, int monitoringItemTimeSpanInMinutes, int monitoringIntervalInMinutes, DateTime startingTimeOfNewItems, DateTime endingTimeOfNewItems) { if(startingTimeOfNewItems == endingTimeOfNewItems) return new UsageMonitorItem[0]; DateTime currentStartingTime = startingTimeOfNewItems; DateTime currentEndingTime = currentStartingTime.AddMinutes(monitoringItemTimeSpanInMinutes); List<UsageMonitorItem> usageMonitorItems = new List<UsageMonitorItem>(); while (currentEndingTime <= endingTimeOfNewItems) { string currName = String.Format("{0}_{1}", currentStartingTime.ToString("yyyyMMddHHmmssfff"), currentEndingTime.ToString("yyyyMMddHHmmssfff")); var currItem = new UsageMonitorItem(); currItem.SetLocationAsOwnerContent(owner, currName); currItem.TimeRangeInclusiveStartExclusiveEnd = new TimeRange { StartTime = currentStartingTime, EndTime = currentEndingTime }; currItem.StepSizeInMinutes = monitoringIntervalInMinutes; //currItem.InitializeStepCollections(); currItem.OwnerInfo = new InformationOwnerInfo { OwnerType = owner.ContainerName, OwnerIdentifier = owner.LocationPrefix }; currentStartingTime = currentEndingTime; currentEndingTime = currentEndingTime.AddMinutes(monitoringItemTimeSpanInMinutes); currItem.InitializeSteppedCollections(); usageMonitorItems.Add(currItem); } return usageMonitorItems.ToArray(); }