Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public Task<List<BulkmailAnnouncementModel>> GetBulkmailAnnouncementsByPackageTrackingId(string packageTrackingIdentification)
- {
- var announcement = await Context.BulkmailAnnouncement
- .Include(x => x.Tarras)
- .Include(x => x.PackageTrackingIdentifications)
- .Where(x => x.PackageTrackingIdentifications.Any(y => y.Value == packageTrackingIdentification) &&
- x.AuditReportIndicator != true)
- .FirstAsync();
- return await Context.BulkmailAnnouncement
- .Include(x => x.Tarras)
- .Include(x => x.PackageTrackingIdentifications)
- .Where(x => x.CustomerOrderId == announcement.CustomerOrderId && x.CustomerPartyAccountId == announcement.CustomerPartyAccountId)
- .ToListAsync();
- }
- var result = BulkmailAnnouncements.GroupBy(
- // Key: make groups with same "certain properties"
- announcement => new
- {
- CustomerOrderId,
- CustomerPartyAccountId,
- })
- // Result: groups of BulkMailAnnouncements with equal "certain properties"
- // keep only those groups that have at least one BulkMailAnnouncement
- // that has both a true AuditReportIndicator and at least one
- // PackageTrackingIdentification that equals packageTrackingIdentification
- .Where(groupOfBulkMailAnnouncements =>
- groupOfBulkMailAnnouncements.Any(bulkMailAnnouncement =>
- bulkMailAnnouncement.AuditReportIndicator &&
- bulkmailAnnouncment.PackageTrackingIdentifications
- .Any(packageTrackingId == packageTrakcingIdentification)))
- // from the remaining groups, take the first or default
- .FirstOrDefault(); // or use async version
- var announcement = await Context.BulkmailAnnouncement
- .Where(x => x.PackageTrackingIdentifications.Any(y => y.Value == packageTrackingIdentification) &&
- x.AuditReportIndicator != true)
- .FirstAsync();
- var announcement2 = await Context.BulkmailAnnouncement
- .Include(x => x.Tarras)
- .Include(x => x.PackageTrackingIdentifications)
- .Where(x => x.CustomerOrderId == announcement.CustomerOrderId && x.CustomerPartyAccountId == announcement.CustomerPartyAccountId)
- .ToListAsync();
- var resultAnnouncement = announcement.Concat(announcement2);
- return resultAnnouncement;
- return await Context.BulkmailAnnouncement
- .Include(x => x.Tarras)
- .Include(x => x.PackageTrackingIdentifications)
- .Where(x => x.PackageTrackingIdentifications != null
- && x.PackageTrackingIdentifications.Any(y => y.Value == packageTrackingIdentification)
- && x.AuditReportIndicator != true)
- .ToListAsync();
- var announcement = await Context.BulkmailAnnouncement
- .Include(x => x.Tarras)
- .Include(x => x.PackageTrackingIdentifications)
- .Where(x => x.PackageTrackingIdentifications != null
- && x.PackageTrackingIdentifications.Any(y => y.Value == packageTrackingIdentification)
- && x.AuditReportIndicator != true)
- .FirstAsync();
- return (await Context.BulkmailAnnouncement
- .Include(x => x.Tarras)
- .Include(x => x.PackageTrackingIdentifications)
- .Where(x => x.PackageTrackingIdentifications != null
- && x.PackageTrackingIdentifications.Any(y => y.Value == packageTrackingIdentification)
- && x.AuditReportIndicator != true)
- .GroupBy(x => new { x.CustomerOrderId, x.CustomerPartyAccountId })
- .FirstAsync()).ToArray();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement