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)); }
// 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)); }