private void SaveOrder(Cart cart, ShoppingDetails model) //sipariş kaydetme { var order = new Order(); order.OrderNumber = "A" + (new Random()).Next(1111, 9999).ToString(); order.Total = cart.Total(); order.OrderDate = DateTime.Now; order.UserName = User.Identity.Name; order.OrderState = OrderState.Bekleniyor; order.Adres = model.Adres; order.Sehir = model.Sehir; order.Semt = model.Semt; order.Mahalle = model.Mahalle; order.PostaKodu = model.PostaKodu; order.OrderLines = new List <OrderLine>(); foreach (var item in cart.Cartlines) { var orderline = new OrderLine(); orderline.Quantity = item.Quantity; orderline.Price = item.Quantity * item.Product.Price; orderline.ProductId = item.Product.Id; order.OrderLines.Add(orderline); } db.Orders.Add(order); db.SaveChanges(); }
public void ProcessOrder(List <ShopCartLineDTO> cart, ShoppingDetailsDTO shoppingDetails, int businessEntityID, string email) { ShopCartItem shopCart = GetCartItem(cart); ShoppingDetails shopDetails = GetShoppingDetails(shoppingDetails); orderProcessor.ProcessOrder(shopCart, shopDetails, businessEntityID, email); }
private void SaveOrder(Cart cart, ShoppingDetails entity) { var order = new Order(); order.OrderNumber = "A" + (new Random().Next(11111, 99999)).ToString(); order.Total = cart.Total(); order.DateTime = DateTime.Now; order.UserName = entity.UserName; order.AdresBasligi = entity.AdresBasligi; order.Adres = entity.Adres; order.Sehir = entity.Sehir; order.Semt = entity.Semt; order.Mahalle = entity.Mahalle; order.PostaKodu = entity.PostaKodu; order.OrderState = EnumOrderState.Bekleniyor; 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.Id; order.OrderLines.Add(orderline); } db.Orders.Add(order); db.SaveChanges(); }
public async Task <IActionResult> PutShoppingDetails([FromRoute] int id, [FromBody] ShoppingDetails shoppingDetails) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != shoppingDetails.ShopId) { return(BadRequest()); } _context.Entry(shoppingDetails).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ShoppingDetailsExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public void Cannot_Checkout_Empty_Cart() { // Организация - создание имитированного обработчика заказов Mock <IOrderProcessor> mock = new Mock <IOrderProcessor>(); // Организация - создание пустой корзины Cart cart = new Cart(); // Организация - создание деталей о доставке ShoppingDetails shippingDetails = new ShoppingDetails(); // Организация - создание контроллера CartController controller = new CartController(null, mock.Object); // Действие ViewResult result = controller.Checkout(cart, shippingDetails); // Утверждение — проверка, что заказ не был передан обработчику mock.Verify(m => m.ProcessOrder(It.IsAny <Cart>(), It.IsAny <ShoppingDetails>()), Times.Never()); // Утверждение — проверка, что метод вернул стандартное представление Assert.AreEqual("", result.ViewName); // Утверждение - проверка, что-представлению передана неверная модель Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public ShoppingDetails Get(int businessEntityID) { ShoppingDetails details = new ShoppingDetails(); using (var context = new AWContext()) { var result = (from a in context.Address join b in context.BusinessEntityAddress on a.AddressID equals b.AddressID join sp in context.StateProvince on a.StateProvinceID equals sp.StateProvinceID where b.BusinessEntityID == businessEntityID orderby a.AddressID descending select new { AddressLine1 = a.AddressLine1, City = a.City, PostalCode = a.PostalCode, CountryRegionCode = sp.CountryRegionCode } ).FirstOrDefault(); if (result != null) { details = new ShoppingDetails { Address = result.AddressLine1, City = result.City, PostalCode = result.PostalCode, Country = result.CountryRegionCode } } ; } return(details); }
public async Task <ActionResult <ShoppingDetails> > PostShoppingDetails(ShoppingDetails shoppingDetails) { _context.ShoppingDetails.Add(shoppingDetails); await _context.SaveChangesAsync(); return(CreatedAtAction("GetShoppingDetails", new { id = shoppingDetails.ShopId }, shoppingDetails)); }
public ActionResult DeleteConfirmed(int id) { ShoppingDetails shoppingDetails = db.ShoppingDetails.Find(id); db.ShoppingDetails.Remove(shoppingDetails); db.SaveChanges(); return(RedirectToAction("List")); }
public void ProcessOrder(Cart cart, ShoppingDetails 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.Product.Price * line.Quantity; body.AppendFormat("{0} x {1} (итого: {2:c}", line.Quantity, line.Product.Name, subtotal); } body.AppendFormat("Общая стоимость: {0:c}", cart.ComputeTotalValue()) .AppendLine("---") .AppendLine("Доставка:") .AppendLine(shippingInfo.Name) .AppendLine(shippingInfo.MainAddress) .AppendLine(shippingInfo.SecondAddress ?? "") .AppendLine(shippingInfo.ThirdAddress ?? "") .AppendLine(shippingInfo.Сity) .AppendLine(shippingInfo.Country) .AppendLine("---") .AppendFormat("Подарочная упаковка: {0}", shippingInfo.Options ? "Да" : "Нет"); MailMessage mailMessage = new MailMessage( emailSettings.MailFromAddress, // От кого emailSettings.MailToAddress, // Кому "Новый заказ отправлен!", // Тема body.ToString()); // Тело письма if (emailSettings.WriteAsFile) { mailMessage.BodyEncoding = Encoding.UTF8; } smtpClient.Send(mailMessage); } }
public ActionResult Create(Cart cart, string returnUrl, ShoppingDetails shoppingDetails) { return(View(new CartCreateViewModel { Cart = cart, ShoppingDetails = shoppingDetails, ReturnUrl = returnUrl })); }
public ActionResult Delete(int id = 0) { ShoppingDetails shoppingDetails = db.ShoppingDetails.Find(id); if (shoppingDetails == null) { return(HttpNotFound()); } return(View(shoppingDetails)); }
private ShoppingDetails GetShoppingDetails(ShoppingDetailsDTO details) { ShoppingDetails shoppingDetails = new ShoppingDetails { Address = details.Address, City = details.City, Country = details.Country, PostalCode = details.PostalCode }; return(shoppingDetails); }
public ShoppingDetails DeleteShoppingDetails(int Id) { ShoppingDetails dbEntry = context.ShoppingDetails.Find(Id); if (dbEntry != null) { context.ShoppingDetails.Remove(dbEntry); context.SaveChanges(); } return(dbEntry); }
public void ProcessOrder(ShopCartItem cart, ShoppingDetails shoppingDetails, int businessEntityID, string email) { using (var scope = new TransactionScope()) { InsertAddress(shoppingDetails, businessEntityID); int workerID = MinSalesWorker(shoppingDetails.City); int orderID = InsertPurchaseOrderHeader(cart, businessEntityID, shoppingDetails.Country); UpdateStatus(orderID, workerID); sender.SendMessage(email, "Manager assigned! Check your order page"); scope.Complete(); } }
public async Task <IActionResult> PostShoppingDetails([FromBody] ShoppingDetails shoppingDetails) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.ShoppingDetails.Add(shoppingDetails); await _context.SaveChangesAsync(); return(CreatedAtAction("GetShoppingDetails", new { id = shoppingDetails.ShopId }, shoppingDetails)); }
public void ProcessOrder(Cart cart, ShoppingDetails shoppingDetails) { using (var smtpClient = new SmtpClient()) { MailMessage mailMessage = new MailMessage(emailSettings.MailFromAddress, emailSettings.MailToAddress, "New Order", ""); if (emailSettings.WriteAsFile) { mailMessage.BodyEncoding = Encoding.ASCII; } //smtpClient.Send(mailMessage); } }
public void Processor(Cart cart, ShoppingDetails shoppingDetails) { using (var smptClient = new SmtpClient()) { smptClient.EnableSsl = emailSettings.UseSsl; smptClient.Host = emailSettings.ServerName; smptClient.Port = emailSettings.ServerPort; smptClient.UseDefaultCredentials = false; smptClient.Credentials = new NetworkCredential(emailSettings.UserName, emailSettings.Password); if (emailSettings.WriteAsFile) { smptClient.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; smptClient.PickupDirectoryLocation = emailSettings.FileLocation; smptClient.EnableSsl = false; } StringBuilder body = new StringBuilder() .AppendLine("New order was processed") .AppendLine("-----") .AppendLine("Stuffs:"); foreach (var line in cart.Lines) { var subtotal = line.Quantity * line.Book.Price; } body.AppendFormat("All summ:{0:c}", cart.ComputeTotalValue()) .AppendLine("----") .AppendLine("Delivery:") .AppendLine(shoppingDetails.Name) .AppendLine(shoppingDetails.Line1) .AppendLine(shoppingDetails.Line2 ?? "") .AppendLine(shoppingDetails.Line3 ?? "") .AppendLine(shoppingDetails.City) .AppendLine(shoppingDetails.Country) .AppendLine("---") .AppendFormat("GiftWrap: {0}", shoppingDetails.GiftWrap ? "Yes" : "No"); MailMessage mailMessage = new MailMessage( emailSettings.MailFromAdress, emailSettings.MailToAdress, "New order was sent", body.ToString()); if (emailSettings.WriteAsFile) { mailMessage.BodyEncoding = Encoding.UTF8; } smptClient.Send(mailMessage); } }
public void ProcessOrder(Cart cart, ShoppingDetails shoppingInfo) { 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}×{1}(subtotal:{2:c}", line.Quantity, line.Product.Name, subtotal); } body.AppendFormat("Total order value:{0:c}", cart.ComputeTotalValue()) .AppendLine("---") .AppendLine("Ship to:") .AppendLine(shoppingInfo.Name) .AppendLine(shoppingInfo.line1) .AppendLine(shoppingInfo.line2 ?? "") .AppendLine(shoppingInfo.line3 ?? "") .AppendLine(shoppingInfo.City) .AppendLine(shoppingInfo.Country) .AppendLine(shoppingInfo.Zip) .AppendLine("---") .AppendFormat("Gift wrap:{0}", shoppingInfo.Giftwrap ? "Yes" : "No"); MailMessage mailMessage = new MailMessage( emailSettings.MailFromAddress, emailSettings.MailToAddress, "New order submitted!", body.ToString()); if (emailSettings.WriteAsFile) { mailMessage.BodyEncoding = Encoding.ASCII; } smtpClient.Send(mailMessage); } }
public void Cannot_Checkout_Empty_Cart() { Mock <IOrderProcessor> mock = new Mock <IOrderProcessor>(); Cart cart = new Cart(); ShoppingDetails shoppingDetails = new ShoppingDetails(); CartController controller = new CartController(null, mock.Object); ViewResult result = controller.Checkout(cart, shoppingDetails); mock.Verify(m => m.ProcessOrder(It.IsAny <Cart>(), It.IsAny <ShoppingDetails>()), Times.Never()); Assert.AreEqual("", result.ViewName); Assert.AreEqual(false, result.ViewData.ModelState.IsValid); }
public void ProcessOrder(Cart cart, ShoppingDetails shippingInfo) { emailSettings.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 System.Net.NetworkCredential(emailSettings.Username, emailSettings.Password); StringBuilder body = new StringBuilder() .AppendLine("Dziękujemy za zakupy!") .AppendLine("----") .AppendLine("Kupione produkty: "); foreach (var line in cart.Lines) { var subtotal = line.Products.Price * line.Quantity; body.AppendFormat("{0} x {1} (Koszt: {2:c})\n", line.Quantity, line.Products.Name, subtotal); } body.AppendFormat("Zakupy na łączną kwotę: {0:c}", cart.ComputeTotalValue()) .AppendLine("\n----") .AppendLine("Dane: ") .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("Zapakowano jako prezent: {0}", shippingInfo.GifWrap ? "Yes" : "No"); System.Net.Mail.MailMessage mailMessage = new System.Net.Mail.MailMessage( emailSettings.MailFromAddress, emailSettings.MailToAddress, "Zakupiono produkty w Mój Sklep!", body.ToString()); // gdy próbujemy dużo razy to wkońcu serwer nie pozwala nam się zalogować i wyskakuje błąd smtpClient.Send(mailMessage); } }
public ActionResult Checkout(Cart cart, ShoppingDetails shoppingDetails) { if (cart.Lines.Count() == 0) { ModelState.AddModelError("", "对不起,您的购物篮是空的!"); } if (ModelState.IsValid) { cart.Clear(); return(View("Completed")); } else { return(View(shoppingDetails)); } }
private void InsertAddress(ShoppingDetails shoppingDetails, int businessEntityID) { ShoppingAddress shoppingAddress = new ShoppingAddress(); ShoppingDetails details = shoppingAddress.Get(businessEntityID); if (!details.Equals(shoppingDetails)) { using (var context = new AWContext()) { var customerAddress = new Address() { AddressLine1 = shoppingDetails.Address, City = shoppingDetails.City, StateProvinceID = shoppingAddress.GetStateProvince(shoppingDetails.City, shoppingDetails.Country), PostalCode = shoppingDetails.PostalCode, ModifiedDate = DateTime.Now, rowguid = Guid.NewGuid() }; if (details.Address != null) //update { var addressID = context.BusinessEntityAddress.SingleOrDefault(x => x.BusinessEntityID == businessEntityID).AddressID; var result = context.Address.SingleOrDefault(x => x.AddressID == addressID); result.AddressLine1 = customerAddress.AddressLine1; result.City = customerAddress.City; result.StateProvinceID = customerAddress.StateProvinceID; result.PostalCode = customerAddress.PostalCode; result.ModifiedDate = customerAddress.ModifiedDate; result.rowguid = customerAddress.rowguid; context.SaveChanges(); } else // insert { var businessEntity = new BusinessEntityAddress() { BusinessEntityID = businessEntityID, AddressTypeID = 1, ModifiedDate = DateTime.Now, rowguid = Guid.NewGuid() }; context.Address.Add(customerAddress); context.SaveChanges(); businessEntity.AddressID = customerAddress.AddressID; context.BusinessEntityAddress.Add(businessEntity); context.SaveChanges(); } } } }
public ViewResult CheckOut(Cart cart, ShoppingDetails shoppingDetails) { if (cart.Lines.Count() == 0) { ModelState.AddModelError("", "Sorry, your cart is empty!"); } if (ModelState.IsValid) { orderProcessor.ProcessOrder(cart, shoppingDetails); cart.Clear(); return(View("Completed")); } else { return(View(shoppingDetails)); } }
public ViewResult Checkout(ShoppingDetails shippingDetails) { if (GetCart().Lines.Count() == 0) { ModelState.AddModelError("", "Nic nie wybrałeś"); } if (ModelState.IsValid) { orderProcessor.ProcessOrder(GetCart(), shippingDetails); GetCart().Clear(); return(View("Completed")); } else { return(View(shippingDetails)); } }
public ActionResult Edit(int?id) { if (id == null) { return(HttpNotFound()); } // Находим в бд футболиста ShoppingDetails shoppingDetails = db.ShoppingDetails.Find(id); if (shoppingDetails != null) { // Создаем список команд для передачи в представление SelectList status = new SelectList(db.Status, "Id", "Name", shoppingDetails.StatusId); ViewBag.Status = status; return(View(shoppingDetails)); } return(RedirectToAction("List")); }
public ActionResult CheckOut(ShoppingDetails urun) { var sepet = GetCart(); if (sepet.CartLines.Count == 0) { ModelState.AddModelError("Urun Yok", "Sepetinizde ürün bulunmamaktadır"); } if (ModelState.IsValid) { // alının ürünlerin veritabanına kaydedilmesi için sepet.Clear(); return(View("View")); } else { return(View(urun)); } }
public ActionResult Checkout(ShoppingDetails model) { var cart = GetCart(); if (cart.Cartlines.Count == 0) { ModelState.AddModelError("UrunYok", "Sepetenizde ürün bulunmamaktadır."); } if (ModelState.IsValid) { SaveOrder(cart, model); cart.Clear(); return(View("SiparisTamamlandi")); } else { return(View(model)); } }
public ActionResult Checkout(ShoppingDetails entity) { var cart = GetCart(); if (cart.CartLines.Count == 0) { ModelState.AddModelError("", "sepette ürün yok"); } if (ModelState.IsValid) { //siparişi veritabanına kaydet //ve sepeti sil SaveOrder(cart, entity); cart.Clear(); return(View("Complated")); } return(View(entity)); }
public ViewResult Checkout(Cart cart, ShoppingDetails shoppingDetails) { if (cart.Lines.Count() == 0) { ModelState.AddModelError("", "Извините, ваша корзина пуста!"); } if (ModelState.IsValid) { orderProcessor.ProcessOrder(cart, shoppingDetails); cart.Clear(); return(View("Completed")); } else { return(View(shoppingDetails)); } }
public ActionResult Create(Cart cart, ShoppingDetails shoppingDetails) { if (cart.Lines.Count() == 0) { ModelState.AddModelError("", "Извините, ваша корзина пуста!"); } if (ModelState.IsValid) { db.Entry(shoppingDetails).State = EntityState.Added; db.SaveChanges(); orderProcessor.SaveShoppingDetails(cart, shoppingDetails); cart.Clear(); return(View("Completed")); } else { return(View(shoppingDetails)); } }