예제 #1
0
        public ActionResult Checkout(CheckoutModel model)
        {
            ValidateModel(model);
            var cart = new Cart(GetCart());

            var emailModel = new CartOrderFromEmailSendModel()
            {
                Cart     = cart,
                UserData = model
            };
            var message = RenderViewToString(this.ControllerContext, "/Views/Cart/_PartialNewOrderFromEmailSend.cshtml", emailModel, true);


            var entity = new Order()
            {
                Adress            = model.Adress,
                Email             = model.Email,
                Phone             = model.Phone,
                TypeProgressOrder = (int)Entity.Enumerable.TypeProgressOrder.SimplePrice,
                UserName          = model.Name,
                Products          = cart.Lines.Select(i => new OrderProduct()
                {
                    Product = new Product()
                    {
                        Id = i.Product.Id
                    },
                    Quantity = i.Quantity
                }).ToList(),
                DateOrder = DateTime.Now
            };

            MailerMessage mailerMessage = new MailerMessage();

            mailerMessage.Body       = message;
            mailerMessage.Subject    = "Заказ с сайта Пирамида строй";
            mailerMessage.To         = _feedBackEmailRepository.GetAll().Select(i => i.Email).ToList();
            mailerMessage.SenderName = "Pyramid";

            if (mailerMessage.To.Count > 0)
            {
                Mailer.Send(mailerMessage);
            }

            GetCart().Clear();
            bool flagErr = false;

            try
            {
                _orederRepository.Add(entity);
            }
            catch (Exception)
            {
                flagErr = true;
            }
            ViewBag.IsAddedOrder = !flagErr;

            ViewBag.MetaTitle = "Подтверждение заказа";
            return(View("ResultCheckout", cart));
        }
예제 #2
0
        public ActionResult CheckoutOneClick(CheckoutModel model, int productId)
        {
            ValidateModel(model);
            var product = _productRepository.Get(productId);

            List <CartLine> lineCollection = new List <CartLine>();

            lineCollection.Add(new CartLine()
            {
                Quantity = 1,
                Product  = new ProductCartModel()
                {
                    Id    = product.Id,
                    Price = product.Price,
                    Title = product.Title
                }
            });
            var emailModel = new CartOrderFromEmailSendModel()
            {
                Cart     = new Cart(lineCollection),
                UserData = model
            };
            var message = RenderViewToString(this.ControllerContext, "/Views/Cart/_PartialNewOrderFromEmailSend.cshtml", emailModel, true);

            var entity = new Order()
            {
                Adress            = model.Adress,
                Email             = model.Email,
                Phone             = model.Phone,
                TypeProgressOrder = (int)Entity.Enumerable.TypeProgressOrder.SimplePrice,
                UserName          = model.Name,
                Products          = new List <OrderProduct>(new OrderProduct[] { new OrderProduct()
                                                                                 {
                                                                                     Product = new Product()
                                                                                     {
                                                                                         Id = productId
                                                                                     },
                                                                                     Quantity = 1
                                                                                 } }),
            };
            MailerMessage mailerMessage = new MailerMessage();

            mailerMessage.Body       = message;
            mailerMessage.Subject    = "Заказ с сайта Пирамида строй";
            mailerMessage.To         = _feedBackEmailRepository.GetAll().Select(i => i.Email).ToList();
            mailerMessage.SenderName = "Pyramid";

            if (mailerMessage.To.Count > 0)
            {
                Mailer.Send(mailerMessage);
            }

            bool flagErr = false;

            try
            {
                _orederRepository.Add(entity);
            }
            catch (Exception ex)
            {
                flagErr = true;
            }
            ViewBag.IsAddedOrder = !flagErr;
            return(View("ResultCheckoutOneClick"));
        }