Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- List<StoreDetailDto> items = new List<StoreDetailDto>();
- items.Add(new StoreDetailDto { StoreNumber = 2, WarehouseNumber = 4201, IsResolved = false, StoreName = "StoreEx", WarehouseName = "WarehouseEx1" });
- items.Add(new StoreDetailDto { StoreNumber = 3, WarehouseNumber = 4201, IsResolved = false , StoreName = "StoreEx", WarehouseName = "WarehouseEx1"});
- items.Add(new StoreDetailDto { StoreNumber = 6, WarehouseNumber = 4201, IsResolved = false, StoreName = "StoreEx" , WarehouseName = "WarehouseEx1"});
- items.Add(new StoreDetailDto { StoreNumber = 7, WarehouseNumber = 4201, IsResolved = false , StoreName = "StoreEx", WarehouseName = "WarehouseEx1"});
- items.Add(new StoreDetailDto { StoreNumber = 9, WarehouseNumber = 4201, IsResolved = false , StoreName = "StoreEx", WarehouseName = "WarehouseEx1"});
- items.Add(new StoreDetailDto { StoreNumber = 6, WarehouseNumber = 4202, IsResolved = false, StoreName = "StoreEx", WarehouseName = "WarehouseEx1"});
- items.Add(new StoreDetailDto { StoreNumber = 7, WarehouseNumber = 4201, IsResolved = false, StoreName = "StoreEx" , WarehouseName = "WarehouseEx1"});
- items.Add(new StoreDetailDto { StoreNumber = 9, WarehouseNumber = 4203, IsResolved = false, StoreName = "StoreEx", WarehouseName = "WarehouseEx1" });
- items.Add(new StoreDetailDto { StoreNumber = 9, WarehouseNumber = 4207, IsResolved = false , StoreName = "StoreEx", WarehouseName = "WarehouseEx1"});
- var overlapDupStores = items.GroupBy(u => u.StoreNumber, u =>
- {
- return u;
- }, (key, g) => g.ToList()).ToList().Where(cnt => cnt.Count() > 1);
- foreach (var dpovl in overlapDupStores)
- {
- var stores = dpovl.Where(g => g.IsResolved != true).GroupBy(u => new { u.StoreNumber, u.WarehouseNumber }).ToList();
- if (stores.Count() > 1)
- {
- response.OverlappingStores.AddRange(stores.SelectMany(gr => gr).ToList());
- }
- }
- var warehouseCountsByStore =
- from item in items
- group item by new { item.StoreNumber, item.WarehouseNumber } into store
- where store.Count() != 0
- select new
- {
- store.Key.StoreNumber,
- store.Key.WarehouseNumber,
- Count = store.Count()
- };
- var storesWithDuplicateWarehouses =
- from warehouse in warehouseCountsByStore
- where warehouse.Count != 1
- select new { warehouse.StoreNumber };
- var storesWithMultipleWarehouse =
- from item in items
- group item by new { item.StoreNumber } into store
- where store.Count() > 1
- && storesWithDuplicateWarehouses.Any(x => x.StoreNumber != store.Key.StoreNumber)
- select new
- {
- store.Key.StoreNumber
- };
- Console.WriteLine("Duplicates");
- foreach (var store in storesWithDuplicateWarehouses)
- Console.WriteLine(store.StoreNumber);
- Console.WriteLine("Overlap");
- foreach (var store in storesWithMultipleWarehouse)
- Console.WriteLine(store.StoreNumber);
Add Comment
Please, Sign In to add comment