Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.46 KB | None | 0 0
  1. public Task<List<BulkmailAnnouncementModel>> GetBulkmailAnnouncementsByPackageTrackingId(string packageTrackingIdentification)
  2. {
  3. var announcement = await Context.BulkmailAnnouncement
  4. .Include(x => x.Tarras)
  5. .Include(x => x.PackageTrackingIdentifications)
  6. .Where(x => x.PackageTrackingIdentifications.Any(y => y.Value == packageTrackingIdentification) &&
  7. x.AuditReportIndicator != true)
  8. .FirstAsync();
  9.  
  10. return await Context.BulkmailAnnouncement
  11. .Include(x => x.Tarras)
  12. .Include(x => x.PackageTrackingIdentifications)
  13. .Where(x => x.CustomerOrderId == announcement.CustomerOrderId && x.CustomerPartyAccountId == announcement.CustomerPartyAccountId)
  14. .ToListAsync();
  15. }
  16.  
  17. var result = BulkmailAnnouncements.GroupBy(
  18.  
  19. // Key: make groups with same "certain properties"
  20. announcement => new
  21. {
  22. CustomerOrderId,
  23. CustomerPartyAccountId,
  24. })
  25. // Result: groups of BulkMailAnnouncements with equal "certain properties"
  26.  
  27. // keep only those groups that have at least one BulkMailAnnouncement
  28. // that has both a true AuditReportIndicator and at least one
  29. // PackageTrackingIdentification that equals packageTrackingIdentification
  30. .Where(groupOfBulkMailAnnouncements =>
  31. groupOfBulkMailAnnouncements.Any(bulkMailAnnouncement =>
  32. bulkMailAnnouncement.AuditReportIndicator &&
  33. bulkmailAnnouncment.PackageTrackingIdentifications
  34. .Any(packageTrackingId == packageTrakcingIdentification)))
  35.  
  36. // from the remaining groups, take the first or default
  37. .FirstOrDefault(); // or use async version
  38.  
  39. var announcement = await Context.BulkmailAnnouncement
  40. .Where(x => x.PackageTrackingIdentifications.Any(y => y.Value == packageTrackingIdentification) &&
  41. x.AuditReportIndicator != true)
  42. .FirstAsync();
  43.  
  44. var announcement2 = await Context.BulkmailAnnouncement
  45. .Include(x => x.Tarras)
  46. .Include(x => x.PackageTrackingIdentifications)
  47. .Where(x => x.CustomerOrderId == announcement.CustomerOrderId && x.CustomerPartyAccountId == announcement.CustomerPartyAccountId)
  48. .ToListAsync();
  49.  
  50. var resultAnnouncement = announcement.Concat(announcement2);
  51. return resultAnnouncement;
  52.  
  53. return await Context.BulkmailAnnouncement
  54. .Include(x => x.Tarras)
  55. .Include(x => x.PackageTrackingIdentifications)
  56. .Where(x => x.PackageTrackingIdentifications != null
  57. && x.PackageTrackingIdentifications.Any(y => y.Value == packageTrackingIdentification)
  58. && x.AuditReportIndicator != true)
  59. .ToListAsync();
  60.  
  61. var announcement = await Context.BulkmailAnnouncement
  62. .Include(x => x.Tarras)
  63. .Include(x => x.PackageTrackingIdentifications)
  64. .Where(x => x.PackageTrackingIdentifications != null
  65. && x.PackageTrackingIdentifications.Any(y => y.Value == packageTrackingIdentification)
  66. && x.AuditReportIndicator != true)
  67. .FirstAsync();
  68.  
  69. return (await Context.BulkmailAnnouncement
  70. .Include(x => x.Tarras)
  71. .Include(x => x.PackageTrackingIdentifications)
  72. .Where(x => x.PackageTrackingIdentifications != null
  73. && x.PackageTrackingIdentifications.Any(y => y.Value == packageTrackingIdentification)
  74. && x.AuditReportIndicator != true)
  75. .GroupBy(x => new { x.CustomerOrderId, x.CustomerPartyAccountId })
  76. .FirstAsync()).ToArray();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement