public GiftOrderSummary GiftOrderSummary(GiftOrder giftorder) { List<GiftOrderDetails> orderdetails = new List<GiftOrderDetails>(); var resultsUsed = _giftorderdetailRepo.All .Join(_giftorderRepo.All, d => d.GiftOrderId, o => o.Id, (d, o) => new { d, o }) .Join(_giftcardsummary.All, t => t.d.Id, c => c.GiftOrderDetailId, (t, c) => new { t.d, t.o, c }) .Join(_OrderRepo.All, p => p.c.OrderId, s => s.Id, (p, s) => new { p.c, p.d, p.o, s }) .Where(a => a.o.OrderStatusId == 3) .Where(a => a.o.Id == giftorder.Id) .Where(a => a.s.OrderStatusId == 3) .Select(a => new GiftOrderDetails { Id = a.d.Id, Amount = a.d.Amount, RecipientEmail = a.d.RecipientEmail, YourName = a.d.YourName, Message = a.d.Message, RecipientGiftCode = a.d.RecipientGiftCode, StatusName = "Used" }).ToList(); var resultsUnUsed1 = _giftorderdetailRepo.All .Join(_giftorderRepo.All, d => d.GiftOrderId, o => o.Id, (d, o) => new { d, o }) .Join(_giftcardsummary.All, t => t.d.Id, c => c.GiftOrderDetailId, (t, c) => new { t.d, t.o, c }) .Join(_OrderRepo.All, p => p.c.OrderId, s => s.Id, (p, s) => new { p.c, p.d, p.o, s }) .Where(a => a.o.OrderStatusId == 3) .Where(a => a.o.Id == giftorder.Id) .Where(a => a.s.OrderStatusId != 3) .Select(a => new GiftOrderDetails { Id = a.d.Id, Amount = a.d.Amount, RecipientEmail = a.d.RecipientEmail, YourName = a.d.YourName, Message = a.d.Message, RecipientGiftCode = a.d.RecipientGiftCode, StatusName = "Unused" }).ToList(); var resultsUnUsed2 = _giftorderdetailRepo.All .Join(_giftorderRepo.All, d => d.GiftOrderId, o => o.Id, (d, o) => new { d, o }) .Where(a => a.o.OrderStatusId == 3) .Where(a => a.o.Id == giftorder.Id) .Select(a => new GiftOrderDetails { Id = a.d.Id, Amount = a.d.Amount, RecipientEmail = a.d.RecipientEmail, YourName = a.d.YourName, Message = a.d.Message, RecipientGiftCode = a.d.RecipientGiftCode, StatusName = "Unused" }).ToList(); foreach (var item in resultsUsed) { resultsUnUsed2.Remove(resultsUnUsed2.Single(s => s.Id == item.Id)); } foreach (var item in resultsUnUsed1) { resultsUnUsed2.Remove(resultsUnUsed2.Single(s => s.Id == item.Id)); } orderdetails = orderdetails.Concat(resultsUsed).ToList(); orderdetails = orderdetails.Concat(resultsUnUsed1).ToList(); orderdetails = orderdetails.Concat(resultsUnUsed2).ToList(); var giftorderSummary = new GiftOrderSummary { Id = giftorder.Id, GiftOrder = giftorder, GiftOrderDetails = orderdetails }; return giftorderSummary; }
public GiftOrderSummary GiftOrderSummary(GiftOrder giftorder) { List <GiftOrderDetails> orderdetails = new List <GiftOrderDetails>(); var resultsUsed = _giftorderdetailRepo.All .Join(_giftorderRepo.All, d => d.GiftOrderId, o => o.Id, (d, o) => new { d, o }) .Join(_giftcardsummary.All, t => t.d.Id, c => c.GiftOrderDetailId, (t, c) => new { t.d, t.o, c }) .Join(_OrderRepo.All, p => p.c.OrderId, s => s.Id, (p, s) => new { p.c, p.d, p.o, s }) .Where(a => a.o.OrderStatusId == 3) .Where(a => a.o.Id == giftorder.Id) .Where(a => a.s.OrderStatusId == 3) .Select(a => new GiftOrderDetails { Id = a.d.Id, Amount = a.d.Amount, RecipientEmail = a.d.RecipientEmail, YourName = a.d.YourName, Message = a.d.Message, RecipientGiftCode = a.d.RecipientGiftCode, StatusName = "Used" }).ToList(); var resultsUnUsed1 = _giftorderdetailRepo.All .Join(_giftorderRepo.All, d => d.GiftOrderId, o => o.Id, (d, o) => new { d, o }) .Join(_giftcardsummary.All, t => t.d.Id, c => c.GiftOrderDetailId, (t, c) => new { t.d, t.o, c }) .Join(_OrderRepo.All, p => p.c.OrderId, s => s.Id, (p, s) => new { p.c, p.d, p.o, s }) .Where(a => a.o.OrderStatusId == 3) .Where(a => a.o.Id == giftorder.Id) .Where(a => a.s.OrderStatusId != 3) .Select(a => new GiftOrderDetails { Id = a.d.Id, Amount = a.d.Amount, RecipientEmail = a.d.RecipientEmail, YourName = a.d.YourName, Message = a.d.Message, RecipientGiftCode = a.d.RecipientGiftCode, StatusName = "Unused" }).ToList(); var resultsUnUsed2 = _giftorderdetailRepo.All .Join(_giftorderRepo.All, d => d.GiftOrderId, o => o.Id, (d, o) => new { d, o }) .Where(a => a.o.OrderStatusId == 3) .Where(a => a.o.Id == giftorder.Id) .Select(a => new GiftOrderDetails { Id = a.d.Id, Amount = a.d.Amount, RecipientEmail = a.d.RecipientEmail, YourName = a.d.YourName, Message = a.d.Message, RecipientGiftCode = a.d.RecipientGiftCode, StatusName = "Unused" }).ToList(); foreach (var item in resultsUsed) { resultsUnUsed2.Remove(resultsUnUsed2.Single(s => s.Id == item.Id)); } foreach (var item in resultsUnUsed1) { resultsUnUsed2.Remove(resultsUnUsed2.Single(s => s.Id == item.Id)); } orderdetails = orderdetails.Concat(resultsUsed).ToList(); orderdetails = orderdetails.Concat(resultsUnUsed1).ToList(); orderdetails = orderdetails.Concat(resultsUnUsed2).ToList(); var giftorderSummary = new GiftOrderSummary { Id = giftorder.Id, GiftOrder = giftorder, GiftOrderDetails = orderdetails }; return(giftorderSummary); }