public void Processor(Cart cart, Customer user, Address address, string shipMethod) { ISalesOrderDetail iSalesOrderDetail = new EFSalesOrderDetails(); ISalesOrderHeader iSalesOrderHeader = new EFSalesOrderHeader(); var salesOrderHeader=new SalesOrderHeader { ModifiedDate = DateTime.Now, rowguid = Guid.NewGuid(), CustomerID = user.CustomerID, RevisionNumber = 0, OrderDate = DateTime.Now, DueDate = DateTime.Now, ShipMethod = shipMethod, TotalDue = 0, SubTotal = cart.ComputeTotalValue(), ShipToAddressID = address.AddressID, BillToAddressID = address.AddressID }; iSalesOrderHeader.AddSalesOrderHeader(salesOrderHeader); foreach (var prod in cart.Lines) { iSalesOrderDetail.AddSalesOrderDetails(new SalesOrderDetail { UnitPrice = prod.Product.StandardCost, ModifiedDate = DateTime.Now, OrderQty = (short)prod.Quantity, ProductID = prod.Product.ProductID, UnitPriceDiscount = 0, rowguid = Guid.NewGuid(), SalesOrderDetailID = 0, SalesOrderID = salesOrderHeader.SalesOrderID }); } }
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { var cart = controllerContext.HttpContext.Session[_sessionKey]; if (cart != null) return cart; cart = new Cart(); controllerContext.HttpContext.Session[_sessionKey] = cart; return cart; }
public ViewResult Index(Cart cart, string returnurl) { return View(new CartIndexViewModel { Cart = cart, ReturnUrl = returnurl }); }
public RedirectToRouteResult RemoveFromCart(Cart cart, int productId, string returnUrl) { var product = repository.Products.FirstOrDefault(p => p.ProductID == productId); if (product != null) { cart.RemoveLine(product); } return RedirectToAction("Index", new { returnUrl }); }
public RedirectToRouteResult AddToCart(Cart cart, int productId, string returnUrl) { var product = repository.Products.FirstOrDefault(p => p.ProductID == productId); if (product != null) { cart.AddItem(product, 1); } return RedirectToAction("Index", new { returnUrl }); }
public RedirectToRouteResult AddToCart(Cart cart, long id, string returnUrl) { Furniture furniture = repository.Furnitures .FirstOrDefault(f => f.Id == id); if (furniture != null) { cart.AddItem(furniture, 1); } return RedirectToAction("Index", new { returnUrl }); }
public ActionResult SubmitOrder(Cart cart) { var username = User.Identity.GetUserName(); CartSubmittedVM vm = new CartSubmittedVM { Categories = prodRepo.GetAllCategories(), order = orderRepo.ReceiveOrder(cart,username) }; return View(vm); }
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { var cart = (Cart)controllerContext.HttpContext.Session[sessionKey]; if (cart == null) { cart = new Cart(); controllerContext.HttpContext.Session[sessionKey] = cart; } return cart; }
public RedirectToRouteResult RemoveFromCart(Cart cart, int productId, string returnUrl) { Product product = prodRepo.GetProductDetails(productId); if (product != null) { //GetCart().RemoveLine(product); cart.RemoveLine(product); } return RedirectToAction("Index", new { returnUrl }); }
public RedirectToRouteResult AddToCart(Cart cart, string returnUrl, int productId = 0 ) { Product product = prodRepo.GetProductDetails(productId); if (product != null) { //GetCart().AddItem(product, 1); int q = Convert.ToInt32(Request.Form["quantity"]); cart.AddItem(product, q); } return RedirectToAction("Index", new { returnUrl }); }
public RedirectToRouteResult RemoveFromCart(Cart cart, long id, string returnUrl) { Furniture furniture = repository.Furnitures .FirstOrDefault(f => f.Id == id); if (furniture != null) { cart.RemoveLine(furniture); } return RedirectToAction("Index", new { returnUrl }); }
// // GET: /Cart/ public ActionResult Index(Cart cart, string returnUrl) { CartIndexVM vm = new CartIndexVM { //Cart = GetCart(), Cart = cart, ReturnUrl = returnUrl, Categories = prodRepo.GetAllCategories() }; return View(vm); }
public void ProcessOrder(Cart cart, ShippingDetails shippingInfo) { MailToAddress = shippingInfo.Email; using (var smtpClient = new SmtpClient()) { smtpClient.EnableSsl = emailSettings.UseSsl; smtpClient.Host = emailSettings.ServerName; smtpClient.Port = emailSettings.ServerPort; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = new NetworkCredential(emailSettings.Username, emailSettings.Password); if (emailSettings.WriteAsFile) { smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; smtpClient.PickupDirectoryLocation = emailSettings.FileLocation; smtpClient.EnableSsl = false; } StringBuilder body = new StringBuilder() .AppendLine("Złozono nowe zamównie") .AppendLine("---") .AppendLine("Przedmioty:"); foreach (var line in cart.Lines) { var subtotal = line.Product.Price * line.Quantity; body.AppendFormat("{0} x {1} (suma: {2:c}", line.Quantity, line.Product.Name, subtotal); } body.AppendFormat("Price zamówienia: {0:c}", cart.ComputeTotalValue()) .AppendLine("---") .AppendLine("Wysyłka do:") .AppendLine(shippingInfo.Name) .AppendLine(shippingInfo.Line1) .AppendLine(shippingInfo.City) .AppendLine(shippingInfo.State ?? "") .AppendLine(shippingInfo.Country) .AppendLine(shippingInfo.Zip); MailMessage mailMessage = new MailMessage( emailSettings.MailFromAddress, //From shippingInfo.Email, //To "RAbot.pl Złozono nowe zamówienie!", //Subject body.ToString()); //Body if (emailSettings.WriteAsFile) { mailMessage.BodyEncoding = Encoding.UTF8; } smtpClient.Send(mailMessage); } }
public void ProcessOrder(Cart cart, ShippingDetails shippingInfo) { using (var smtpClient = new SmtpClient()) { smtpClient.EnableSsl = emailSettings.UseSsl; smtpClient.Host = emailSettings.ServerName; smtpClient.Port = emailSettings.ServerPort; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = new NetworkCredential(emailSettings.Username, emailSettings.Password); if (emailSettings.WriteAsFile) { smtpClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; smtpClient.PickupDirectoryLocation = emailSettings.FileLocation; smtpClient.EnableSsl = false; } StringBuilder body = new StringBuilder() .AppendLine("A new order has been submitted") .AppendLine("---").AppendLine("Items:"); foreach (var line in cart.Lines) { var subtotal = line.Product.Price * line.Quantity; body.AppendFormat("{0} x {1} (subtotal: {2:c}", line.Quantity, line.Product.Name, subtotal); } body.AppendFormat("Total order value: {0:c}", cart.ComputeTotalValue()) .AppendLine("---") .AppendLine("Ship to:").AppendLine(shippingInfo.Name) .AppendLine(shippingInfo.Line1) .AppendLine(shippingInfo.Line2 ?? "") .AppendLine(shippingInfo.Line3 ?? "") .AppendLine(shippingInfo.City) .AppendLine(shippingInfo.State ?? "") .AppendLine(shippingInfo.Country) .AppendLine(shippingInfo.Zip) .AppendLine("---").AppendFormat("Gift wrap: {0}", shippingInfo.GiftWrap ? "Yes" : "No"); MailMessage mailMessage = new MailMessage( emailSettings.MailFromAddress, // From emailSettings.MailToAddress, // To "New order submitted!", // Subject body.ToString()); // Body if (emailSettings.WriteAsFile) { mailMessage.BodyEncoding = Encoding.ASCII; } smtpClient.Send(mailMessage); } }
public void Cannot_Checkout_Empty_Cart() { var mock = new Mock<IOrderProcessor>(); var cart = new Cart(); var shippingDetails = new ShippingDetails(); var target = new CartController(null, mock.Object); ViewResult result = target.Checkout(cart, shippingDetails); mock.Verify(m => m.ProcessOrder(It.IsAny<Cart>(), It.IsAny<ShippingDetails>()), Times.Never()); Assert.AreEqual("", result.ViewName); Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public void Canlcalate_Cart_Total() { var p1 = new Product { ProductID = 1, Name = "p1", Price = 100M }; var p2 = new Product { ProductID = 2, Name = "p2", Price = 50M }; var target = new Cart(); target.AddItem(p1, 1); target.AddItem(p2, 1); target.AddItem(p1, 3); var result = target.ComputeTotalValue(); Assert.AreEqual(result, 450M); }
public ViewResult Checkout(Cart cart, ShippingDetails shippingDetails) { if (!cart.Lines.Any()) { ModelState.AddModelError("","Извините, ваша корзина пустая!"); } if(ModelState.IsValid) { orderProcessor.ProcessOrder(cart,shippingDetails); cart.Clear(); return View("Completed"); } return View(shippingDetails); }
public void Cannot_Checkout_Invalid_ShippingDetails() { var mock = new Mock<IOrderProcessor>(); var cart = new Cart(); cart.AddItem(new Product(), 1); var target = new CartController(null, mock.Object); target.ModelState.AddModelError("error", "error"); ViewResult result = target.Checkout(cart, new ShippingDetails()); mock.Verify(m => m.ProcessOrder(It.IsAny<Cart>(), It.IsAny<ShippingDetails>()), Times.Never()); Assert.AreEqual("", result.ViewName); Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public ViewResult Checkout(Cart cart, ShippingDetails shippingDetails) { if (!cart.Lines.Any()) { ModelState.AddModelError("", "Sorry, your cart is empty"); } if (ModelState.IsValid) { orderProcessor.ProcessOrder(cart, shippingDetails); cart.Clear(); return View("Completed"); } return View(shippingDetails); }
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { // Получить объект Cart из сеанса var cart = (Cart) controllerContext.HttpContext.Session[sessionKey]; //Создать экземпляр Cart, если его не обнаружено в данных сеанса if(cart == null) { cart = new Cart(); controllerContext.HttpContext.Session[sessionKey] = cart; } return cart; }
public void Addig_Products_To_Cart_Goes_To_Cart_Screen() { var mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new[] { new Product {ProductID = 1, Name = "p1", Category = "Apples"} }.AsQueryable()); var cart = new Cart(); var target = new CartController(mock.Object, null); var result = target.AddToCart(cart, 2, "myUrl"); Assert.AreEqual(result.RouteValues["action"], "Index"); Assert.AreEqual(result.RouteValues["returnUrl"], "myUrl"); }
public void AddOrderDetails(Order order, Cart cart) { var cartItems = cart.lineCollection.ToList(); foreach (var item in cartItems) { var orderDetail = new OrderDetail { OrderId = order.OrderId, ProductId = item.Product.ProductId, Quantity = item.Quantity }; db.OrderDetails.Add(orderDetail); } db.SaveChanges(); }
public void Can_Add_Quantity_For_Existing_Lines() { var p1 = new Product { ProductID = 1, Name = "P1" }; var p2 = new Product { ProductID = 2, Name = "P2" }; var target = new Cart(); target.AddItem(p1, 1); target.AddItem(p2, 1); target.AddItem(p1,10); var results = target.Lines.OrderBy(c => c.Product.ProductID).ToArray(); Assert.AreEqual(results.Length, 2); Assert.AreEqual(results[0].Quantity, 11); Assert.AreEqual(results[1].Quantity, 1); }
public ViewResult Checkout(Cart cart, ShippingDetails shippingDetails) { if (cart.Lines.Count() == 0) { ModelState.AddModelError("", "Twój koszyk jest pusty :("); } if (ModelState.IsValid) { orderProcessor.ProcessOrder(cart, shippingDetails); cart.Clear(); return View("Completed"); } else { return View(shippingDetails); } }
public void Can_Add_New_Lines() { var p1 = new Product{ ProductID = 1, Name = "P1"}; var p2 = new Product {ProductID = 2, Name = "P2"}; var target = new Cart(); // Действие target.AddItem(p1,1); target.AddItem(p2,1); var results = target.Lines.ToArray(); Assert.AreEqual(results.Length,2); Assert.AreEqual(results[0].Product,p1); Assert.AreEqual(results[1].Product, p2); }
public ViewResult Checkout(Cart cart, ShippingDetails shippingDetails) { if (cart.Lines.Count() == 0) { ModelState.AddModelError("", "Извините, ваша корзина пуста!"); } if (ModelState.IsValid) { cart.Clear(); return View("OrderCompleted"); } else { return View(shippingDetails); } }
public Order ReceiveOrder(Cart cart, string username) { var order = new Order{ Username = username, OrderDate = DateTime.Now, Status = "Received", Total = cart.ComputeTotal(), //CompleteDate = new DateTime(1900,1,1) }; db.Orders.Add(order); AddOrderDetails(order, cart); db.SaveChanges(); cart.Clear(); return order; }
public void ProcessOrder(Cart cart, ShippingDetails shippingInfo) { using (var smtpClient = new SmtpClient()) { smtpClient.EnableSsl = emailSettings.UseSsl; smtpClient.Host = emailSettings.SeverName; smtpClient.UseDefaultCredentials = false; smtpClient.Credentials = new NetworkCredential(emailSettings.Username, emailSettings.Password); var body = new StringBuilder().AppendLine("Новый заказ оформлен") .AppendLine("---") .AppendLine("Товары: "); foreach (var line in cart.Lines) { var subtotal = line.Product.Price*line.Quantity; body.AppendFormat("{0} x {1} (Общая стоимость: {2:c})", line.Quantity, line.Product.Name, subtotal ); } body.AppendFormat("Cумма: {0:c}", cart.ComputeTotalValue()) .AppendLine("--") .AppendLine("Ship to:") .AppendLine(shippingInfo.Name) .AppendLine(shippingInfo.Line1) .AppendLine(shippingInfo.City) .AppendLine(shippingInfo.Country) .AppendLine(shippingInfo.Zip) .AppendLine("--"); var mailMessage = new MailMessage ( emailSettings.MailFromAddress, emailSettings.MailToAddress, "Новый заказ оформлен", body.ToString() ); smtpClient.Send(mailMessage); } }
public void Cannot_Checkout_Empty_Cart() { // Организация - создание пустой корзины Cart cart = new Cart(); // Организация - создание деталей о доставке ShippingDetails shippingDetails = new ShippingDetails(); // Организация - создание контроллера CartController controller = new CartController(null); // Действие ViewResult result = controller.Checkout(cart, shippingDetails); // Утверждение — проверка, что метод вернул стандартное представление Assert.AreEqual("", result.ViewName); // Утверждение - проверка, что-представлению передана неверная модель Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { //get the Cart from the session Cart cart = null; if (controllerContext.HttpContext.Session != null) { cart = (Cart)controllerContext.HttpContext.Session[sessionKey]; } //create the Cart if there wasn't one in the Session data if (cart == null) { cart = new Cart(); if (controllerContext.HttpContext.Session != null) { controllerContext.HttpContext.Session[sessionKey] = cart; } } return cart; }