コード例 #1
0
        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();
        }