private void LoadReport()
 {
     StackedStoreList.Clear();
     StoreZipList.Clear();
     foreach (var store in StoresWithCheckList.Where(s => s.Check))
     {
         var stackedStore = new StackedStoreInfo();
         stackedStore.Store          = store.Store;
         stackedStore.EquipmentSum   = ServiceZipList.Where(se => se.StoreNumber == store.Store.StoreNumber && (new DateTime(se.ServiceYear.Value, ReturnNumberMonth(se.ServiceMonth), 1) >= new DateTime(StartDate.Year, StartDate.Month, 1)) && (new DateTime(se.ServiceYear.Value, ReturnNumberMonth(se.ServiceMonth), 1) < new DateTime(EndDate.Year, EndDate.Month, 1)) && se.ZipName != "Ремонт").Sum(se => se.ZipQuantity == 0 ? se.ZipPrice : se.ZipPrice * se.ZipQuantity.Value);
         stackedStore.RepairSum      = ServiceZipList.Where(se => se.StoreNumber == store.Store.StoreNumber && (new DateTime(se.ServiceYear.Value, ReturnNumberMonth(se.ServiceMonth), 1) >= new DateTime(StartDate.Year, StartDate.Month, 1)) && (new DateTime(se.ServiceYear.Value, ReturnNumberMonth(se.ServiceMonth), 1) < new DateTime(EndDate.Year, EndDate.Month, 1)) && se.ZipName == "Ремонт").Sum(se => se.ZipPrice);
         stackedStore.ServiceZipList = ServiceZipList.Where(se => se.StoreNumber == store.Store.StoreNumber && (new DateTime(se.ServiceYear.Value, ReturnNumberMonth(se.ServiceMonth), 1) >= new DateTime(StartDate.Year, StartDate.Month, 1)) && (new DateTime(se.ServiceYear.Value, ReturnNumberMonth(se.ServiceMonth), 1) < new DateTime(EndDate.Year, EndDate.Month, 1)));
         StackedStoreList.Add(stackedStore);
     }
 }
        private void LoadSelectedStorezip()
        {
            StoreZipList.Clear();
            var query = from s in SelectedStackedStore.ServiceZipList
                        group s by s.ZipSet.MainZipName into zip
                        select new StoreZip {
                ZipName = zip.Key, Summ = zip.Sum(z => z.ZipQuantity == 0 ? z.ZipPrice : z.ZipPrice * z.ZipQuantity.Value), ZipList = new ObservableCollection <ZipPrice> (zip.Select(z => new ZipPrice {
                    Price = z.ZipPrice, Quantity = z.ZipQuantity.Value, Zip = z.ZipName
                }).ToList())
            };

            foreach (var item in query)
            {
                StoreZipList.Add(item);
            }
        }
 private void LoadAllSelectedStorezip()
 {
     StoreZipList.Clear();
     foreach (var store in StackedStoreList)
     {
         var query = from s in store.ServiceZipList
                     group s by s.ZipSet.MainZipName into zip
                     select new StoreZip {
             ZipName = zip.Key, Summ = zip.Sum(z => z.ZipQuantity == 0 ? z.ZipPrice : z.ZipPrice * z.ZipQuantity.Value), ZipList = new ObservableCollection <ZipPrice>(zip.Select(z => new ZipPrice {
                 Price = z.ZipPrice, Quantity = z.ZipQuantity.Value, Zip = z.ZipName
             }).ToList())
         };
         foreach (var item in query)
         {
             if (StoreZipList.Count == 0)
             {
                 StoreZipList.Add(item);
                 continue;
             }
             int temp = 0;
             foreach (var stZip in StoreZipList)
             {
                 if (stZip.ZipName == item.ZipName)
                 {
                     temp        = 1;
                     stZip.Summ += item.Summ;
                     stZip.ZipList.AddRange(item.ZipList);
                 }
             }
             if (temp == 0)
             {
                 StoreZipList.Add(item);
             }
         }
     }
 }