コード例 #1
0
        public async Task <ActionResult> Checkout(CartSVCClient cart, ShippingDetailsViewModel shippingDetails)
        {
            if (cart.Lines().Count() == 0)
            {
                ModelState.AddModelError("", "Извините, ваша корзина пуста!");
            }

            if (ModelState.IsValid)
            {
                var mapper             = new MapperConfiguration(cfg => cfg.CreateMap <ShippingDetailsViewModel, ShippingDetailsDTO>()).CreateMapper();
                var shippingDetailsDTO = mapper.Map <ShippingDetailsViewModel, ShippingDetailsDTO>(shippingDetails);

                CartLineDTO[] cartLines = cart.Lines();

                await orderProcessorService.ProcessOrderAsync(cartLines, shippingDetailsDTO);

                cart.Clear();

                return(View("Completed"));
            }
            else
            {
                return(View(shippingDetails));
            }
        }
コード例 #2
0
        public IActionResult Complete()
        {
            var model = new ShippingDetailsViewModel();

            model.ShippingDetail = new ShippingDetail();
            return(View(model));
        }
コード例 #3
0
        public ActionResult Complete()
        {
            ShippingDetailsViewModel sdvm = new ShippingDetailsViewModel
            {
                ShippingDetails = new ShippingDetails()
            };

            return(View(sdvm));
        }
コード例 #4
0
 public ActionResult Complete(ShippingDetailsViewModel shippingDetail)
 {
     if (!ModelState.IsValid)
     {
         return(View());
     }
     TempData.Add("message", String.Format("Siparişiniz başarıyla gerçekleştirilmiştir."));
     return(View());
 }
コード例 #5
0
ファイル: CartController.cs プロジェクト: maxmatula/DiscStore
 public ActionResult EditShipping(ShippingDetailsViewModel model)
 {
     if (ModelState.IsValid)
     {
         var result = orderService.EditShippingDetails(model);
         return(RedirectToAction("Checkout", "Cart"));
     }
     return(View(model));
 }
コード例 #6
0
        public IActionResult Complete()
        {
            var model = new ShippingDetailsViewModel
            {
                ShippingDetail = new ShippingDetail()
            };

            return(View());
        }
コード例 #7
0
        public ActionResult Complete()
        {
            var shippingDetailsViewModel = new ShippingDetailsViewModel
            {
                ShippingDetails = new ShippingDetails()
            };

            return(View(shippingDetailsViewModel));
        }
コード例 #8
0
        public IActionResult ShippingAdress(int shippingId)
        {
            var user  = User.FindFirst(ClaimTypes.NameIdentifier);
            var model = new ShippingDetailsViewModel
            {
                ShippingDetail = _cartService.GetAdress(user.Value)
            };

            return(View(model));
        }
コード例 #9
0
 public IActionResult Complete(ShippingDetailsViewModel model)
 {
     if (!ModelState.IsValid)
     {
         return(View(model));
     }
     TempData.Add("message", string.Format("Thank you {0}, you order is in process", model.ShippingDetails.FirstName));
     _cartSessionService.SetCard(new Cart());
     return(RedirectToAction("Index", "Product"));
 }
コード例 #10
0
        public IActionResult FindShippingDetails(Guid id)
        {
            var response = new ShippingDetailsViewModel
            {
                Title = "EEEEEE",
                Price = 7
            };

            return(Ok(response));
        }
コード例 #11
0
ファイル: CartController.cs プロジェクト: maxmatula/DiscStore
        public ActionResult CreateShipping(ShippingDetailsViewModel model)
        {
            var userId = User.Identity.GetUserId();

            if (ModelState.IsValid)
            {
                var result = orderService.CreateShippingDetails(model, userId);
                return(RedirectToAction("ShippingDetails", "Cart"));
            }
            return(View(model));
        }
コード例 #12
0
        private void SaveOrder(Cart cart, ShippingDetailsViewModel entity)
        {
            using (_context = new DataContext())
            {
                Order order = new Order();

                order.OrderNumber  = "A" + (new Random()).Next(11111, 99999).ToString();
                order.Total        = cart.Total();
                order.OrderDate    = DateTime.Now;
                order.OrderState   = EnumOrderState.Bekleyen;
                order.Username     = User.Identity.Name;
                order.İsim         = entity.İsim;
                order.Soyisim      = entity.Soyisim;
                order.AdresBasligi = entity.AdresBasligi;
                order.Adres        = entity.Adres;
                order.Sehir        = entity.Sehir;
                order.İlce         = entity.İlce;
                order.Telefon      = entity.Telefon;
                order.Eposta       = entity.Eposta;
                order.PostaKodu    = entity.PostaKodu;
                order.OrderNote    = entity.OrderNote;
                order.Orderlines   = new List <OrderLine>();

                foreach (var pr in cart.CartLines)
                {
                    var orderline = new OrderLine();
                    orderline.Quantity   = pr.Quantity;
                    orderline.Price      = pr.Quantity * pr.Product.Price;
                    orderline.ProductId  = pr.Product.ProductId;
                    orderline.ShippingId = 1;
                    order.Orderlines.Add(orderline);
                }
                _context.Orders.Add(order);
                _context.SaveChanges();

                SmtpClient client = new SmtpClient();
                client.Host        = ConfigurationManager.AppSettings["EmailHost"].ToString();
                client.Port        = 25;
                client.EnableSsl   = false;
                client.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["Email"].ToString(), ConfigurationManager.AppSettings["Password"].ToString());

                MailAddress from = new MailAddress(ConfigurationManager.AppSettings["Email"].ToString());
                string      to   = order.Eposta.ToString();
                MailMessage mail = new MailMessage(from.ToString(), to);
                mail.CC.Add(to);
                mail.Subject = "Çatalcalı Doğal Organik Gıda Sipariş Özetiniz";
                mail.Body    = "<span style ='font-size:50px; font-color:green'>Siparişin Bize Ulaştı!</span><br>" +
                               "<span style ='font-size:20px'>Ödeme işlemi kapıda, Nakit veya Kredi Kartı ile gerçekleştireceğimizi unutma.<br>" +
                               "Siparişini en hızlı şekilde sana ulaştırmak için seni arayıp bir gönderim saatini seçmeni isteyeceğiz.</span><br>" +
                               "<span style='color: darkgrey; font-size:15px'>Çatalcalı Organik Doğal Gıdayı tercih ettiğiniz için teşekkür ederiz.</span>";
                mail.IsBodyHtml = true;
                client.Send(mail);
            }
        }
コード例 #13
0
        public IActionResult Complete()
        {
            if (_cartSessionHelper.GetCart("cart").CartLines.Count == 0)
            {
                TempData.Add("message", "Sepetinizde ürün bulunmamaktadır");
                return(RedirectToAction("Index", "Cart"));
            }
            var model = new ShippingDetailsViewModel
            {
                ShippingDetail = new ShippingDetail()
            };

            return(View(model));
        }
コード例 #14
0
        public ViewResult Checkout(Cart cart)
        {
            ShippingDetailsViewModel model = new ShippingDetailsViewModel();

            if (cart.Lines.Count() != 0)
            {
                var assetAllocation = cart.Lines.First().AssetAllocation;

                if (assetAllocation != null)
                {
                    model.Email = assetAllocation.EmployeeEmail;
                }
            }

            return(View(model));
        }
コード例 #15
0
 public OrderProcessor(ApplicationData.ApplicationData context, Cart cart, ShippingDetailsViewModel shippingDetails)
 {
     this.context = context;
     this.cart    = cart;
     this.order   = new Order {
         OrderDate            = DateTime.Now,
         Email                = shippingDetails.Email,
         Sale                 = context.Sales.Where(x => x.Id == cart.SaleId).First(),
         ShipTo               = shippingDetails.FirstName + " " + shippingDetails.LastName,
         ShippingAddressLine1 = shippingDetails.AddressLine1,
         ShippingAddressLine2 = shippingDetails.AddressLine2,
         Suburb               = shippingDetails.Suburb,
         State                = shippingDetails.State,
         Postcode             = shippingDetails.Postcode
     };
 }
コード例 #16
0
 public ViewResult Checkout(CardModel card, ShippingDetailsViewModel shippingDetails)
 {
     if (card.Lines.Count() == 0)
     {
         ModelState.AddModelError("", "Sorry, your card is empty!");
     }
     if (ModelState.IsValid)
     {
         card.Clear();
         return(View("Completed"));
     }
     else
     {
         return(View(shippingDetails));
     }
 }
コード例 #17
0
ファイル: OrderService.cs プロジェクト: maxmatula/DiscStore
        public bool EditShippingDetails(ShippingDetailsViewModel model)
        {
            try
            {
                var shipping = Mapper.Map <ShippingDetails>(model);
                db.Entry(shipping).State = EntityState.Modified;
                db.SaveChanges();
                return(true);
            }
            catch
            {
                return(false);

                throw new Exception("Nie można edytować obiektu danych odbiorcy!");
            }
        }
コード例 #18
0
        public ActionResult Checkout(ShippingDetailsViewModel entity)
        {
            Cart cart = GetCart();

            if (cart.CartLines.Count == 0)
            {
                ModelState.AddModelError("NoProductsFound", "Sepetinizde ürün bulunmamaktadır.");
            }
            else if (ModelState.IsValid)
            {
                SaveOrder(cart, entity);
                cart.Clear();
                return(View("Completed", entity));
            }
            return(View(entity));
        }
コード例 #19
0
ファイル: CartController.cs プロジェクト: war-man/ETrade
        public IActionResult Complete()
        {
            var model = new ShippingDetailsViewModel
            {
                ShippingDetails = new List <ShippingDetail>()
            };
            var  user   = _userService.GetByMail(User.Claims.SingleOrDefault(c => c.Type == ClaimTypes.Email).Value).Data;
            var  result = _shippingDetailService.GetList(user.Id);
            var  cart   = _cartSessionHelper.GetCart("cart");
            bool error  = false;

            foreach (var cartLine in cart.CartLines.ToList())
            {
                var stock = _productService.GetStockInformation(cartLine.Product.ProductId).Data;

                if (stock == 0)
                {
                    error = true;
                    _cartService.RemoveFromCart(cart, cartLine.Product.ProductId);
                }

                if (cartLine.Quantity > stock)
                {
                    error             = true;
                    cartLine.Quantity = stock;
                }
            }
            _cartSessionHelper.SetCart("cart", cart);
            if (error)
            {
                TempData.Add(TempDataTypes.StockInsufficient, Messages.StockInsufficient);
                return(RedirectToAction("Index", "Cart"));
            }

            if (!result.Success)
            {
                if (result.Message.Equals(Messages.ThereIsntShippingDetails))
                {
                    return(RedirectToAction("AddShippingDetail", "Cart"));
                }
            }

            model.ShippingDetails = result.Data;

            return(View(model));
        }
コード例 #20
0
        public ActionResult Checkout(Cart cart, ShippingDetailsViewModel shippingDetails)
        {
            if (cart.Lines.Count() == 0)
            {
                ModelState.AddModelError("", "Sorry, your cart is empty!");
            }

            if (ModelState.IsValid)
            {
                OrderProcessor processor = new OrderProcessor(applicationDataContext, cart, shippingDetails);
                return(Redirect(processor.ProcessOrder()));
            }
            else
            {
                return(View(shippingDetails));
            }
        }
コード例 #21
0
        public ActionResult CheckOut(ShippingDetailsViewModel shippingDetails)
        {
            Cart cart = getCart();

            if (cart == null || cart.LineCollection.Count == 0)
            {
                ModelState.AddModelError("", "Giỏ Hàng Của Bạn Trống");
            }

            if (ModelState.IsValid)
            {
                service.ProsessOrder(shippingDetails, cart);
                cart.Clear();
                Session["Cart"] = null;
                return(RedirectToAction("Complete", "Home"));
            }
            return(View());
        }
コード例 #22
0
ファイル: OrderService.cs プロジェクト: maxmatula/DiscStore
        public bool CreateShippingDetails(ShippingDetailsViewModel model, string userId)
        {
            try
            {
                var shipping = Mapper.Map <ShippingDetails>(model);
                shipping.ShippingID = Guid.NewGuid();
                shipping.UserID     = userId;
                db.ShippingDetails.Add(shipping);
                db.SaveChanges();
                return(true);
            }
            catch
            {
                return(false);

                throw new Exception("Nie można stworzyć obiektu danych odbiorcy!");
            }
        }
コード例 #23
0
        public ActionResult ShippingDetails()
        {
            var cart = _cartSessionService.GetCart();

            if (cart.CartLines.Count <= 0)
            {
                return(RedirectToAction("Index", "Product"));
            }
            var userId = User.FindFirst(ClaimTypes.NameIdentifier);

            var ShippingAdress = _cartService.GetAdress(userId.Value);

            var model = new ShippingDetailsViewModel
            {
                ShippingDetail = ShippingAdress
            };


            return(View(model));
        }
コード例 #24
0
ファイル: CartController.cs プロジェクト: war-man/ETrade
        public IActionResult ListShippingDetails()
        {
            var model = new ShippingDetailsViewModel
            {
                ShippingDetails = new List <ShippingDetail>()
            };
            var user   = _userService.GetByMail(User.Claims.SingleOrDefault(c => c.Type == ClaimTypes.Email).Value).Data;
            var result = _shippingDetailService.GetList(user.Id);

            if (!result.Success)
            {
                if (result.Message.Equals(Messages.ThereIsntShippingDetails))
                {
                    return(RedirectToAction("AddShippingDetail", "Cart"));
                }
            }

            model.ShippingDetails = result.Data;

            return(View(model));
        }
コード例 #25
0
        public void ProsessOrder(ShippingDetailsViewModel shippingDetails, Cart cart)
        {
            var customer = context.KhachHangs.FirstOrDefault(x => x.Email == shippingDetails.Email);

            if (customer == null)
            {
                customer = new KhachHang()
                {
                    Ten     = shippingDetails.Ten,
                    Email   = shippingDetails.Email,
                    DiaChi  = shippingDetails.DiaChi,
                    SDT     = shippingDetails.SDT,
                    NoiDung = shippingDetails.NoiDung
                };
                context.KhachHangs.Add(customer);
            }
            else
            {
                customer.Ten    = shippingDetails.Ten;
                customer.DiaChi = shippingDetails.DiaChi;
                customer.SDT    = shippingDetails.SDT;
            }
            context.SaveChanges();

            DonHang order = new DonHang()
            {
                CreateDate = DateTime.Now,
                Status     = (int)Define.OrderStatus.ChoXacNhan,
                CustomerId = customer.CustomerID,
                ShipName   = customer.Ten,
                ShipAdress = customer.DiaChi,
                ShipEmail  = customer.Email,
                ShipMobile = customer.SDT
            };

            context.DonHangs.Add(order);
            context.SaveChanges();

            foreach (var item in cart.LineCollection)
            {
                ChiTietDonHang orderDetaisl = new ChiTietDonHang();
                if (item.Product.GiaKhuyenMai > 0)
                {
                    orderDetaisl.OrderId    = order.OrderId;
                    orderDetaisl.ProductId  = item.Product.ProductID;
                    orderDetaisl.Quantity   = item.Quantity;
                    orderDetaisl.Price      = item.Product.GiaKhuyenMai;
                    orderDetaisl.CreateDate = DateTime.Now;
                    orderDetaisl.CreateBy   = customer.Email;
                    orderDetaisl.Status     = (int)Define.OrderStatus.ChoXacNhan;
                }
                else
                {
                    orderDetaisl.OrderId    = order.OrderId;
                    orderDetaisl.ProductId  = item.Product.ProductID;
                    orderDetaisl.Quantity   = item.Quantity;
                    orderDetaisl.Price      = item.Product.Gia;
                    orderDetaisl.CreateDate = DateTime.Now;
                    orderDetaisl.CreateBy   = customer.Email;
                    orderDetaisl.Status     = (int)Define.OrderStatus.ChoXacNhan;
                }

                context.ChiTietDonHangs.Add(orderDetaisl);
            }
            context.SaveChanges();

            foreach (var item in cart.LineCollection)
            {
                var model = context.SanPhams.Where(x => x.ProductID == item.Product.ProductID).FirstOrDefault();
                model.SoLuong -= item.Quantity;
            }
            context.SaveChanges();
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("<ol>");
            foreach (var line in cart.LineCollection)
            {
                if (line.Product.GiaKhuyenMai > 0)
                {
                    stringBuilder.Append("<li>");
                    stringBuilder.Append(line.Product.Ten);
                    stringBuilder.Append("<span>" + line.Quantity + "x" + line.Product.GiaKhuyenMai);
                    stringBuilder.Append("= " + line.Quantity * line.Product.GiaKhuyenMai);
                    stringBuilder.Append("</span>");
                }
                else
                {
                    stringBuilder.Append("<li>");
                    stringBuilder.Append(line.Product.Ten);
                    stringBuilder.Append("<span>" + line.Quantity + "x" + line.Product.Gia);
                    stringBuilder.Append("= " + line.Quantity * line.Product.Gia);
                    stringBuilder.Append("</span>");
                }
                stringBuilder.Append("</ol>");
                stringBuilder.Append("<h3>Tổng Tiền : <strong>" + cart.ComputerTotal() + "</strong></h3>");
            }
            EmailHelper emailHelper = new EmailHelper();

            emailHelper.Send(
                "Đơn Hàng" + order.OrderId,
                shippingDetails.Email,
                stringBuilder.ToString(),
                null,
                null);
        }
コード例 #26
0
ファイル: CartService.cs プロジェクト: gitxyz01/UpdateXavia
        public void ProsessOrder(ShippingDetailsViewModel shippingDetails, Cart cart)
        {
            var customer = context.ecom_Customer.FirstOrDefault(x => x.Phone == shippingDetails.Phone);

            if (customer == null)
            {
                customer = new ecom_Customer()
                {
                    Name    = shippingDetails.Name,
                    Email   = shippingDetails.Email,
                    Address = shippingDetails.Address,
                    Phone   = shippingDetails.Phone,
                    //NoiDung = shippingDetails.NoiDung
                };
                context.ecom_Customer.Add(customer);
            }
            else
            {
                customer.Name    = shippingDetails.Name;
                customer.Address = shippingDetails.Address;
                customer.Email   = shippingDetails.Email;
            }
            context.SaveChanges();

            ecom_Orders order = new ecom_Orders()
            {
                CreatedDate        = DateTime.Now,
                Status             = (int)Define.OrderStatus.Waiting,
                CustomerId         = customer.Id,
                AddressOfRecipient = customer.Address,
                NameOfRecipient    = customer.Name,
                PhoneOfRecipient   = customer.Phone,
                EmailOfRecipient   = shippingDetails.Email,
                OrderNote          = shippingDetails.Note,
            };

            context.ecom_Orders.Add(order);
            context.SaveChanges();

            foreach (var item in cart.LineCollection)
            {
                ecom_OrderDetails orderDetaisl = new ecom_OrderDetails()
                {
                    OrderID     = order.Id,
                    ProductID   = item.Product.Id,
                    Quantity    = item.Quantity,
                    PriceOfUnit = item.Product.Price,
                    CreatedDate = DateTime.Now,
                    CreatedByTy = customer.Name,
                    Status      = (int)Define.OrderStatus.Waiting
                };
                context.ecom_OrderDetails.Add(orderDetaisl);
            }
            context.SaveChanges();

            foreach (var item in cart.LineCollection)
            {
                var model = context.ecom_Products.Where(x => x.Id == item.Product.Id).FirstOrDefault();
                if (model.TotalBuy == null)
                {
                    model.TotalBuy = 0;
                }
                model.Quantity -= item.Quantity;
                model.TotalBuy += item.Quantity;
            }
            context.SaveChanges();
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("<ol>");
            foreach (var line in cart.LineCollection)
            {
                stringBuilder.Append("<li>");
                stringBuilder.Append(line.Product.Name);
                stringBuilder.Append("<span>" + line.Quantity + "x" + line.Product.Price);
                stringBuilder.Append("= " + line.Quantity * line.Product.Price);
                stringBuilder.Append("</span>");
                stringBuilder.Append("</ol>");
                stringBuilder.Append("<h3>Tổng Tiền : <strong>" + cart.ComputerTotal() + "</strong></h3>");
            }
            MailHelper emailHelper = new MailHelper();

            emailHelper.Send(
                "Đơn Hàng" + order.Id,
                shippingDetails.Email,
                stringBuilder.ToString(),
                null,
                null);
        }