public ActionResult Detail(Guid orderId)
        {
            ShoppingCart           cart;
            PaymentTransaction     payTrans;
            List <ContentLanguage> contentLanguages;
            var model = new FeOrderPaymentPage();

            using (var db = new CoreEcommerceDbContext())
            {
                cart = db.ShoppingCarts.SingleOrDefault(i => i.Id == orderId);

                var cartPaymentMethodId  = cart.PaymentMethodId;
                var cartShippingMethodId = cart.ShippingMethodId;

                model.Payment = db.PaymentMethods.Select(i => new FeShoppingCartCheckoutPage.FeIdAndDescription()
                {
                    Id = i.Id, Name = i.Name
                })
                                .SingleOrDefault(i => i.Id == cartPaymentMethodId) ?? new FeShoppingCartCheckoutPage.FeIdAndDescription();
                model.Shipping = db.ShippingMethods.Select(i => new FeShoppingCartCheckoutPage.FeIdAndDescription()
                {
                    Id = i.Id, Name = i.Name
                })
                                 .SingleOrDefault(i => i.Id == cartShippingMethodId) ?? new FeShoppingCartCheckoutPage.FeIdAndDescription();

                model.Address = db.ShoppingCartShippingAddresses
                                .Where(i => i.ShoppingCartId == cart.Id).OrderByDescending(i => i.CreatedDate).FirstOrDefault()
                                ?? new ShoppingCartShippingAddress();

                model.OrderPromotion = db.OrderPromotions.Join(db.ShoppingCarts, pp => pp.Id, sc => sc.OrderPromotionId,
                                                               (pp, sc) => new { Pp = pp, Sc = sc })
                                       .Select(m => new FeOrderPromotion()
                {
                    Id               = m.Pp.Id,
                    CreatedDate      = m.Pp.CreatedDate,
                    Actived          = m.Pp.Actived,
                    AmountToDiscount = m.Pp.AmountToDiscount,
                    DiscountAmount   = m.Pp.DiscountAmount,
                    FreeShip         = m.Pp.FreeShip,
                }).FirstOrDefault();
                model.OrderPromotion = model.OrderPromotion ?? new FeOrderPromotion();

                contentLanguages = db.ContentLanguages
                                   .Where(i => i.Id == cartPaymentMethodId || i.Id == cartShippingMethodId || i.Id == model.OrderPromotion.Id).ToList();
            }
            model.Order = cart;
            model.OrderPromotion.Description = contentLanguages.GetValue(model.OrderPromotion.Id, "Description");

            model.Shipping.Description       = contentLanguages.GetValue(model.Shipping.Id, "Description");
            model.Payment.Description        = contentLanguages.GetValue(model.Payment.Id, "Description");
            model.OrderPromotion.Description = contentLanguages.GetValue(model.OrderPromotion.Id, "Description");

            return(View(model));
        }
Exemple #2
0
        // GET: Payment
        public ActionResult Cod(string orderCode)
        {
            ShoppingCart           cart;
            PaymentTransaction     payTrans;
            List <ContentLanguage> contentLanguages;
            var model = new FeOrderPaymentPage();

            using (var db = new CoreEcommerceDbContext())
            {
                payTrans = db.PaymentTransactions.SingleOrDefault(
                    i => i.OrderCode.Equals(orderCode, StringComparison.OrdinalIgnoreCase));
                if (payTrans == null)
                {
                    throw new Exception("payment was not created");
                }

                cart = db.ShoppingCarts.SingleOrDefault(i => i.OrderCode.Equals(orderCode, StringComparison.OrdinalIgnoreCase));

                contentLanguages = db.ContentLanguages
                                   .Where(i => i.Id == cart.PaymentMethodId || i.Id == cart.ShippingMethodId).ToList();

                model.Payment = db.PaymentMethods.Select(i => new FeShoppingCartCheckoutPage.FeIdAndDescription()
                {
                    Id = i.Id, Name = i.Name
                })
                                .SingleOrDefault(i => i.Id == cart.PaymentMethodId);
                model.Shipping = db.ShippingMethods.Select(i => new FeShoppingCartCheckoutPage.FeIdAndDescription()
                {
                    Id = i.Id, Name = i.Name
                })
                                 .SingleOrDefault(i => i.Id == cart.ShippingMethodId);

                model.Address = db.ShoppingCartShippingAddresses
                                .Where(i => i.ShoppingCartId == cart.Id).OrderByDescending(i => i.CreatedDate).FirstOrDefault()
                                ?? new ShoppingCartShippingAddress();
            }
            model.Order = cart;

            model.Shipping.Description = contentLanguages.GetValue(model.Shipping.Id, "Description");
            model.Payment.Description  = contentLanguages.GetValue(model.Payment.Id, "Description");

            return(View(model));
        }