public ViewResult Index(Cart cart , string returnUrl) { return View(new CartIndexViewModel { Cart = cart, ReturnUrl = returnUrl }); }
public RedirectToRouteResult AddProduct(int productId, string redirectToUrl, Cart cart) { var addedProduct = _repository.Products.FirstOrDefault(x => x.ProductID == productId); cart.Add(addedProduct, 1); return RedirectToAction("Index", new { redirectToUrl }); }
public void ClearTest_CanClearContents() { Cart target = new Cart(); target.AddItem(p1, 1); target.AddItem(p2, 1); target.Clear(); Assert.AreEqual(target.Lines.Count(), 0); }
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("Новый заказ обработан") .AppendLine("---") .AppendLine("Товары:"); foreach (var line in cart.Lines) { var subtotal = line.Game.Price * line.Quantity; body.AppendFormat("{0} x {1} (итого: {2:c}", line.Quantity, line.Game.Name, subtotal); } body.AppendFormat("Общая стоимость: {0:c}", cart.ComputeTotalValue()) .AppendLine("---") .AppendLine("Доставка:") .AppendLine(shippingInfo.Name) .AppendLine(shippingInfo.Line1) .AppendLine(shippingInfo.Line2 ?? "") .AppendLine(shippingInfo.Line3 ?? "") .AppendLine(shippingInfo.City) .AppendLine(shippingInfo.Country) .AppendLine("---") .AppendFormat("Подарочная упаковка: {0}", shippingInfo.GiftWrap ? "Да" : "Нет"); MailMessage mailMessage = new MailMessage( emailSettings.MailFromAddress, // От кого emailSettings.MailToAddress, // Кому "Новый заказ отправлен!", // Тема body.ToString()); // Тело письма if (emailSettings.WriteAsFile) { mailMessage.BodyEncoding = Encoding.UTF8; } smtpClient.Send(mailMessage); } }
public void IndexTest_CanViewCartContents() { var cart = new Cart(); var target = new CartController(null, null); var result = (CartIndexViewModel)target.Index(cart, "myUrl").Model; Assert.AreSame(result.Cart, cart); Assert.AreEqual(result.ReturnUrl, "myUrl"); }
public ViewResult Index(Cart cart, string returnUrl) // przed zmianami w global.asax public ViewResult Index(string returnUrl) { return View(new CartIndexViewModel { //usunac Cart = GetCart(), ReturnUrl = returnUrl, Cart = cart // dodane (wg. asax) }); }
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 object BindModel(ControllerContext controllerContext,ModelBindingContext bindingContext) { Cart cart = (Cart)controllerContext.HttpContext.Session[sessionkey]; if(cart == null) { cart = new Cart(); controllerContext.HttpContext.Session[sessionkey] = cart; } return cart; }
public RedirectToRouteResult AddToCart(Cart cart, int productId, string returnUrl) { Product product = repository.Products .FirstOrDefault(p => p.ProductID == productId); if(product!=null) { cart.AddItem(product, 1); } return RedirectToAction("Index", new {returnUrl}); }
public RedirectToRouteResult RemoveFromCart(Cart cart, int productId, string returnUrl) { Product product = repository.Products .FirstOrDefault(p => p.ProductID == productId); if(product!=null) { cart.RemoveLine(product); } return RedirectToAction("Index", new {returnUrl}); }
public ViewResult ConfirmDetails(Cart cart, DeliveryDetails details) { if (ModelState.IsValid) { _orderProcessor.ProcessOrder(cart, details); return View(); } else { return View("Checkout", details); } }
public void ComputeTotalValueTest_CalculateCartTotal() { Cart target = new Cart(); target.AddItem(p1, 1); target.AddItem(p2, 1); target.AddItem(p1, 3); decimal result = target.ComputeTotalValue(); Assert.AreEqual(result, 450M); }
private Cart GetCart() { Cart cart = (Cart)Session["Cart"]; if(cart == null) { cart = new Cart(); Session["Cart"] = cart; } return cart; }
public RedirectToRouteResult AddToCart(Cart cart, int gameId, string returnUrl) { Game game = repository.Games .FirstOrDefault(g => g.GameId == gameId); if (game != null) { cart.AddItem(game, 1); } return RedirectToAction("Index", new { returnUrl }); }
public PartialViewResult AddToCart(Cart cart, int productId, string returnUrl) { Product product = repository.Products .FirstOrDefault(p => p.ProductId == productId); if (product != null) { cart.AddItem(product, 1); } return PartialView("Summary", cart); }
public void AddItemTest_CanAddNewLines() { var target = new Cart(); target.AddItem(p1, 1); target.AddItem(p2, 1); CartLine[] results = target.Lines.ToArray(); Assert.AreEqual(results.Length, 2); Assert.AreEqual(results[0].Product, p1); Assert.AreEqual(results[1].Product, p2); }
public RedirectToRouteResult RemoveFromCart(Cart cart, int gameId, string returnUrl) { Game game = repository.Games .FirstOrDefault(g => g.GameId == gameId); if (game != null) { cart.RemoveLine(game); } return RedirectToAction("Index", new { returnUrl }); }
public void AddItemTest_CanAddQuantityForExistingLines() { var target = new Cart(); target.AddItem(p1, 1); target.AddItem(p2, 1); target.AddItem(p1, 10); CartLine[] 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 void RemoveLineTest_CanRemoveLine() { var target = new Cart(); target.AddItem(p1, 1); target.AddItem(p2, 3); target.AddItem(p3, 5); target.AddItem(p2, 1); target.RemoveLine(p2); Assert.AreEqual(target.Lines.Where(c => c.Product == p2).Count(), 0); Assert.AreEqual(target.Lines.Count(), 2); }
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("Nowe zamowienie") .AppendLine("---") .AppendLine("Produkty:"); foreach(var line in cart.Lines) { var subtotal = line.Product.Price * line.Quantity; body.AppendFormat("{0} x {1} (wartość: {2:c}", line.Quantity, line.Product.Price, subtotal); } body.AppendFormat("Wartość całkowita : {0:c}", cart.ComputeTotalValue()) .AppendLine("---") .AppendLine("Wysyłka dla: ") .AppendLine(shippingInfo.Name) .AppendLine(shippingInfo.Line1) .AppendLine(shippingInfo.Line2 ?? "") .AppendLine(shippingInfo.Line3 ?? "") .AppendLine(shippingInfo.City) .AppendLine(shippingInfo.State ?? "") .AppendLine(shippingInfo.Zip) .AppendLine("---") .AppendFormat("Pakowanie prezentu: {0}", shippingInfo.GiftWrap ? "Tak" : "Nie"); MailMessage mailMessage = new MailMessage( emailSettings.MailFromAddress, //od kogo emailSettings.MailToAddress, //do kogo "Otrzymano nowe zamówienie!", //temat body.ToString()); // zawartosc generowana automatycznie przez string buildera if(emailSettings.WriteAsFile) { mailMessage.BodyEncoding = Encoding.ASCII; } smtpClient.Send(mailMessage); } }
public void CanClearContent() { Product product1 = new Product { ProductId = 1, Name = "Product1", Price = 100m }; Product product2 = new Product { ProductId = 2, Name = "Product2", Price = 50m }; Cart target = new Cart(); target.AddItem(product1, 1); target.AddItem(product2, 1); target.Clear(); Assert.AreEqual(target.Lines.Count(), 0); }
public void Calculate_Cart_Total() { Product p1 = new Product { ProductID = 1, Name = "P1", Price = 100M }; Product p2 = new Product { ProductID = 2, Name = "P2", Price =50M}; Cart target = new Cart(); target.AddItem(p1, 2); target.AddItem(p2, 2); decimal result = target.ComputeTotalValue(); Assert.AreEqual(result, 300M); }
public void CanAddNewLines() { Product product1 = new Product { ProductId = 1, Name = "Product1" }; Product product2 = new Product { ProductId = 2, Name = "Product2" }; Cart target = new Cart(); target.AddItem(product1, 1); target.AddItem(product2, 1); CartLine[] result = target.Lines.ToArray(); Assert.AreEqual(result.Length, 2); Assert.AreEqual(result[0].Product, product1); Assert.AreEqual(result[1].Product, product2); }
public void CheckoutTest_CannotCheckoutEmptyCart() { var mock = new Mock<IOrderProcessor>(); var cart = new Cart(); var target = new CartController(null, mock.Object); //动作 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 void AddToCartTest_CanAddToCart() { var mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product{ ProductID=1,Name="P1", Category="Apples"} }.AsQueryable()); var cart = new Cart(); var target = new CartController(mock.Object, null); target.AddToCart(cart, 1, null); Assert.AreEqual(cart.Lines.Count(), 1); Assert.AreEqual(cart.Lines.ToArray()[0].Product.ProductID, 1); }
public void CalcuateCartTotal() { Product product1 = new Product { ProductId = 1, Name = "Product1", Price = 100m }; Product product2 = new Product { ProductId = 2, Name = "Product2", Price = 50m }; Cart target = new Cart(); target.AddItem(product1, 1); target.AddItem(product2, 1); target.AddItem(product1, 3); decimal actual = target.ComputeTotalValue(); decimal expected = 450m; Assert.AreEqual(actual, expected); }
public void AddToCartTest_AddingProductToCartGoesToCartScreen() { var mock = new Mock<IProductRepository>(); mock.Setup(m => m.Products).Returns(new Product[] { new Product{ ProductID=1,Name="P1", Category="Apples"} }.AsQueryable()); var cart = new Cart(); var target = new CartController(mock.Object, null); RedirectToRouteResult result = target.AddToCart(cart, 2, "myUrl"); Assert.AreEqual(result.RouteValues["action"], "Index"); Assert.AreEqual(result.RouteValues["returnUrl"], "myUrl"); }
public void Calculate_Cart_Total() { // Arrange - create some test products Product p1 = new Product { ProductID = 1, Name = "P1", Price = 100M }; Product p2 = new Product { ProductID = 2, Name = "P2", Price = 50M }; // Arrange - create a new cart Cart target = new Cart(); // Act target.AddItem(p1, 1); target.AddItem(p2, 1); target.AddItem(p1, 3); decimal result = target.ComputeTotalValue(); // Assert Assert.AreEqual(result, 450M); }
public void Can_Add_Quantity_For_Existing_Item() { Product p1 = new Product { ProductID = 1, Name = "P1" }; Product p2 = new Product { ProductID = 2, Name = "P2" }; Cart target = new Cart(); target.AddItem(p1, 1); target.AddItem(p2, 1); target.AddItem(p1, 1); CartLine[] results = target.Lines.ToArray(); Assert.AreEqual(results.Length, 2); Assert.AreEqual(results[0].Quantity, 2); }
public void Can_Add_New_Lines() { Product p1 = new Product { ProductID = 1, Name = "P1" }; Product p2 = new Product { ProductID = 2, Name = "P2" }; Cart target = new Cart(); target.AddItem(p1, 1); target.AddItem(p2, 1); CartLine[] results = target.Lines.ToArray(); Assert.AreEqual(results.Length , 2); Assert.AreEqual(results[0].Product, p1); Assert.AreEqual(results[1].Product, p2); }