public static void ExecuteMethod_PopulateMonitoringItems(RequestResourceUsageCollection[] resourcesToIncludeInMonitoring, UsageMonitorItem[] newMonitoringItems)
 {
     if (resourcesToIncludeInMonitoring.Length == 0 || newMonitoringItems.Length == 0)
         return;
     int currMonitoringItemIX = 0;
     var resourcesCombined = resourcesToIncludeInMonitoring.SelectMany(coll => coll.CollectionContent).ToArray();
     var currMonitoringItem = newMonitoringItems[currMonitoringItemIX];
     foreach (var resourceItem in resourcesCombined)
     {
         DateTime resourceItemTime = resourceItem.ProcessorUsage.TimeRange.EndTime;
         while (resourceItemTime >= currMonitoringItem.TimeRangeInclusiveStartExclusiveEnd.EndTime)
         {
             currMonitoringItemIX++;
             if (currMonitoringItemIX == newMonitoringItems.Length)
                 return;
             currMonitoringItem = newMonitoringItems[currMonitoringItemIX];
         }
         DateTime currMonitorStartTime = currMonitoringItem.TimeRangeInclusiveStartExclusiveEnd.StartTime;
         bool matchesTimes = currMonitorStartTime <= resourceItemTime &&
                             currMonitoringItem.TimeRangeInclusiveStartExclusiveEnd.EndTime > resourceItemTime;
         if(matchesTimes == false)
             throw new InvalidDataException("Invalid data processing to feed invalid data to populating items");
         var diffFromMonitorBegin = resourceItemTime - currMonitorStartTime;
         var completeMinutes = Math.Floor(diffFromMonitorBegin.TotalMinutes);
         int stepIndex = (int) (completeMinutes/currMonitoringItem.StepSizeInMinutes);
         // Add data to index entries
         addValuesToMonitorItem(resourceItem, currMonitoringItem, stepIndex);
     }
 }
 private void CopyContentFrom(RequestResourceUsageCollection sourceObject)
 {
     CollectionContent = sourceObject.CollectionContent;
             _unmodified_CollectionContent = sourceObject._unmodified_CollectionContent;
 }
 public static RequestResourceUsageCollection CreateDefault()
 {
     var result = new RequestResourceUsageCollection();
             return result;
 }
partial         static void CreateCustomDemo(ref RequestResourceUsageCollection customDemoObject);
 private static void storeOwnerContentsAsCollections(Dictionary<string, List<RequestResourceUsage>> ownerGroupedUsages)
 {
     var allKeys = ownerGroupedUsages.Keys;
     foreach (var ownerKey in allKeys)
     {
         IContainerOwner owner;
         if (ownerKey.StartsWith(SystemSupport.SystemOwnerRoot))
             owner = TBSystem.CurrSystem;
         else
             owner = VirtualOwner.FigureOwner(ownerKey);
         var ownerContent = ownerGroupedUsages[ownerKey];
         var firstRangeItem = ownerContent[0];
         var lastRangeItem = ownerContent[ownerContent.Count - 1];
         string collName = String.Format("{0}_{1}",
                                         firstRangeItem.ProcessorUsage.TimeRange.EndTime.ToString(
                                             "yyyyMMddHHmmssfff"),
                                         lastRangeItem.ProcessorUsage.TimeRange.EndTime.ToString(
                                             "yyyyMMddHHmmssfff"));
         //var existing = RequestResourceUsageCollection.RetrieveFromOwnerContent(owner, collName);
         //if (existing != null)
         //    continue;
         RequestResourceUsageCollection ownerCollection = new RequestResourceUsageCollection();
         ownerCollection.SetLocationAsOwnerContent(owner, collName);
         ownerCollection.CollectionContent = ownerContent;
         ownerCollection.StoreInformation(null, true);
     }
 }