Guest User

Untitled

a guest
Oct 17th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 KB | None | 0 0
  1. List<StoreDetailDto> items = new List<StoreDetailDto>();
  2.  
  3. items.Add(new StoreDetailDto { StoreNumber = 2, WarehouseNumber = 4201, IsResolved = false, StoreName = "StoreEx", WarehouseName = "WarehouseEx1" });
  4. items.Add(new StoreDetailDto { StoreNumber = 3, WarehouseNumber = 4201, IsResolved = false , StoreName = "StoreEx", WarehouseName = "WarehouseEx1"});
  5. items.Add(new StoreDetailDto { StoreNumber = 6, WarehouseNumber = 4201, IsResolved = false, StoreName = "StoreEx" , WarehouseName = "WarehouseEx1"});
  6. items.Add(new StoreDetailDto { StoreNumber = 7, WarehouseNumber = 4201, IsResolved = false , StoreName = "StoreEx", WarehouseName = "WarehouseEx1"});
  7. items.Add(new StoreDetailDto { StoreNumber = 9, WarehouseNumber = 4201, IsResolved = false , StoreName = "StoreEx", WarehouseName = "WarehouseEx1"});
  8.  
  9. items.Add(new StoreDetailDto { StoreNumber = 6, WarehouseNumber = 4202, IsResolved = false, StoreName = "StoreEx", WarehouseName = "WarehouseEx1"});
  10. items.Add(new StoreDetailDto { StoreNumber = 7, WarehouseNumber = 4201, IsResolved = false, StoreName = "StoreEx" , WarehouseName = "WarehouseEx1"});
  11. items.Add(new StoreDetailDto { StoreNumber = 9, WarehouseNumber = 4203, IsResolved = false, StoreName = "StoreEx", WarehouseName = "WarehouseEx1" });
  12. items.Add(new StoreDetailDto { StoreNumber = 9, WarehouseNumber = 4207, IsResolved = false , StoreName = "StoreEx", WarehouseName = "WarehouseEx1"});
  13.  
  14. var overlapDupStores = items.GroupBy(u => u.StoreNumber, u =>
  15. {
  16. return u;
  17. }, (key, g) => g.ToList()).ToList().Where(cnt => cnt.Count() > 1);
  18.  
  19.  
  20. foreach (var dpovl in overlapDupStores)
  21. {
  22. var stores = dpovl.Where(g => g.IsResolved != true).GroupBy(u => new { u.StoreNumber, u.WarehouseNumber }).ToList();
  23.  
  24. if (stores.Count() > 1)
  25. {
  26. response.OverlappingStores.AddRange(stores.SelectMany(gr => gr).ToList());
  27. }
  28. }
  29.  
  30. var warehouseCountsByStore =
  31. from item in items
  32. group item by new { item.StoreNumber, item.WarehouseNumber } into store
  33. where store.Count() != 0
  34. select new
  35. {
  36. store.Key.StoreNumber,
  37. store.Key.WarehouseNumber,
  38. Count = store.Count()
  39. };
  40.  
  41. var storesWithDuplicateWarehouses =
  42. from warehouse in warehouseCountsByStore
  43. where warehouse.Count != 1
  44. select new { warehouse.StoreNumber };
  45.  
  46. var storesWithMultipleWarehouse =
  47. from item in items
  48. group item by new { item.StoreNumber } into store
  49. where store.Count() > 1
  50. && storesWithDuplicateWarehouses.Any(x => x.StoreNumber != store.Key.StoreNumber)
  51. select new
  52. {
  53. store.Key.StoreNumber
  54. };
  55.  
  56. Console.WriteLine("Duplicates");
  57. foreach (var store in storesWithDuplicateWarehouses)
  58. Console.WriteLine(store.StoreNumber);
  59.  
  60. Console.WriteLine("Overlap");
  61. foreach (var store in storesWithMultipleWarehouse)
  62. Console.WriteLine(store.StoreNumber);
Add Comment
Please, Sign In to add comment