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;
        }
Example #2
0
        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);
        }