public ActionResult Checkout(ShippingDetailsModel entity) { var card = GetCard(); if (card.Cardlines.Count == 0) { ModelState.AddModelError("UrunYokError", "Sepetinizde Ürün Bulunmamaktadır !"); } else { if (ModelState.IsValid) { //sorunsuz ise Siparişi Veritabanına Kayde SaveOrder(card, entity); card.Clear();//cardı sıfırla return(View("Completed")); } else { return(View(entity)); } } return(View(new ShippingDetailsModel())); }
private void SaveOrder(Cart cart, ShippingDetailsModel entity) { var order = new Order(); order.OrderNumber = "A" + (new Random()).Next(11111, 99999).ToString(); order.Total = cart.Total(); order.OrderDate = DateTime.Now; order.OrderState = EnumOrderState.Waiting; order.Username = User.Identity.Name; order.AdresBilgi = entity.AdresBilgi; order.Adres = entity.Adres; order.Sehir = entity.Sehir; order.Semt = entity.Semt; order.Mahalle = entity.Mahalle; order.PostaKodu = entity.PostaKodu; 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 ActionResult Complete() { var shippingDetailsViewModel = new ShippingDetailsModel { ShippingDetails = new ShippingDetails() }; return(View(shippingDetailsViewModel)); }
private ShippingDetails AddShippingDetails(ShippingDetailsModel Model) { ShippingDetails order = null; using (var db = new CartContext()) { var ShippingDetails = new ShippingDetails() { Name = Model.Name, Address = Model.Address, City = Model.City, Country = Model.Country, Username = Session["Username"].ToString() }; order = db.ShippingDetails.Add(ShippingDetails); db.SaveChanges(); } return(order); }
public ActionResult CompleteCheckout(ShippingDetailsModel Model) { var regex = "[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{4}"; if (Model.CreditCard != null && Regex.IsMatch(Model.CreditCard, regex)) { var details = AddShippingDetails(Model); AddFruits(Model, details); Session["cart"] = new List <Fruit>(); Session["weight"] = 0.0; return(RedirectToAction("Index", "Home")); } else { ViewBag.Message = "Credit card number must be in xxxx-xxxx-xxxx-xxxx format"; return(View("Checkout")); } }
public ActionResult Checkout(ShippingDetailsModel entity) { var cart = GetCart(); if (cart.CartLines.Count == 0) { ModelState.AddModelError("UrunYokError", "Sepetinizde ürün bulunmamaktadır."); } if (ModelState.IsValid) { SaveOrder(cart, entity); cart.Clear(); return(View("Completed")); } else { return(View(entity)); } }
private void AddFruits(ShippingDetailsModel Model, ShippingDetails details) { using (var db = new CartContext()) { var fruits = (List <Fruit>)Session["cart"]; foreach (var f in fruits) { var fruit = new Fruit() { FruitType = f.FruitType, Amount = f.Amount, Price = f.Price, Weight = f.Weight, ShippingDetails = details }; db.Fruit.Add(fruit); db.SaveChanges(); } } }
public ViewResult Checkout(Cart cart, ShippingDetailsModel shipping, string DeliveryType, string PayType, string TK) { string dt = "", pt = "", comp = ""; switch (DeliveryType) { case "0": dt = "Курьер"; break; case "1": dt = "Самовывоз"; break; case "2": dt = "Доставка"; break; case "3": dt = "Экспресс-доставка"; break; } switch (PayType) { case "0": pt = "Другие способы оплаты"; break; case "1": pt = "Безналичная"; break; } if (DeliveryType == "2" || DeliveryType == "3") { var dc = new DataContext(); var itk = int.Parse(TK); var tk = (from tcom in dc.TransportationCompanies where tcom.Id == itk select tcom).SingleOrDefault(); comp = tk?.TKName; } if (DeliveryType == "-1") { ModelState.AddModelError("Delivery", "Заполните поле Способ доставки."); } if (PayType == "-1") { ModelState.AddModelError("Pay", "Заполните поле Способ оплаты."); } if (ModelState.IsValid) { var dc = new DataContext(); try { StringWriter sw = new StringWriter(); string start = @"<html><head><meta charset=""utf-8""><meta name = ""viewport"" content = ""width=device-width, initial-scale=1""></head><body face=""Arial"">"; string img = "<img src=\"" + Server.MapPath("/") + "/Content/img/art.png\">"; sw.Write(start); sw.Write(img); sw.Write("<br>"); string empty = "<br>"; string header = "<div><table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border - collapse:collapse; \">"; string footer = "<div><table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border - collapse:collapse; \">"; string main = "<div><table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border - collapse:collapse; \"><tr><th scope=\"col\">Коллекция</th><th scope=\"col\">Артикул</th><th scope=\"col\">Ткань</th><th scope=\"col\">Цвет</th><th scope=\"col\">Штрихкод</th><th scope=\"col\">Разбивка</th><th scope=\"col\">Метраж</th></tr>"; header += "<tr><td>Клиент</td><td>" + Membership.Provider.GetUser(System.Web.HttpContext.Current.User.Identity.Name, true).UserName + "</td><td>Дата заказа</td><td>" + DateTime.Now.ToShortDateString() + "</td></tr>"; header += "<tr><td>Город</td><td>" + shipping.City.Trim() + "</td><td>Телефон</td><td>" + shipping.Telephone.Trim() + "</td></tr>"; header += "<tr><td>Способ оплаты</td><td>" + pt + "</td><td>Менеджер</td><td>" + shipping.Name.Trim() + "</td></tr>"; header += "</table>"; footer += "<tr><td>Адрес доставки</td><td>" + shipping.DeliveryAdress.Trim() + "</td></tr>"; footer += "<tr><td>Дата доставки</td><td>" + shipping.DeliveryDateFrom.ToShortDateString() + "-" + shipping.DeliveryDateTo.ToShortDateString() + "</td></tr>"; footer += "<tr><td>Комментарий</td><td>" + (shipping.Description?.Trim() ?? "") + "</td></tr>"; footer += "<tr><td>Способ доставки</td><td>" + dt + "</td></tr>"; footer += "<tr><td>Транспортная компания</td><td>" + comp + "</td></tr>"; footer += "</table>"; var order = new Order(); order.OrderDate = DateTime.Now; order.UserId = HttpContext.User.Identity.Name; order.OrderInfo = ""; order.OrderInfo += "Город: " + shipping.City.Trim() + ";"; order.OrderInfo += "Способ оплаты: " + pt + ";"; order.OrderInfo += "Менеджер: " + shipping.Name.Trim() + ";"; order.OrderInfo += "Адрес доставки: " + shipping.DeliveryAdress.Trim() + ";"; order.OrderInfo += "Способ доставки: " + dt + ";"; order.OrderInfo += "Комментарий: " + (shipping.Description?.Trim() ?? "") + ";"; order.OrderInfo += "Транспортная компания: " + comp + ";"; order.Details = new List <OrderDetails>(); sw.Write(header); sw.Write(empty); foreach (var line in cart.Lines) { main += "<tr>"; main += "<td>" + line.Product.ProductCollection + "</td>"; main += "<td>" + line.Product.ProductArticle + "</td>"; main += "<td>" + line.Product.ProductName + "</td>"; main += "<td>" + line.ProductChar.ProductCharName + "</td>"; main += "<td>" + line.Shk + "</td>"; main += "<td>" + line.Cutting + "</td>"; main += "<td>" + line.Quantity + "</td>"; main += "</tr>"; var od = new OrderDetails(); od.ProductId = line.Product.Id; od.ProductCharId = line.ProductChar.Id; od.Cutting = line.Cutting; od.Quantity = line.Quantity; od.Shk = line.Shk; order.Details.Add(od); } main += "</table>"; sw.Write(main); sw.Write(empty); sw.Write(footer); sw.Write("</body></html>"); //var r = new HtmlViewRenderer(); //var test = r.RenderViewToString(this, "Checkout", shipping); SmtpClient smtpClient = new SmtpClient(); NetworkCredential basicCredential = new NetworkCredential("*****@*****.**", "sd187jnw65"); //NetworkCredential basicCredential = new NetworkCredential("*****@*****.**", "+79035249738abv!"); MailMessage message = new MailMessage(); MailAddress fromAddress = new MailAddress("*****@*****.**"); //MailAddress fromAddress = new MailAddress("*****@*****.**"); smtpClient.Host = "smtp.yandex.ru"; smtpClient.Port = 587; smtpClient.EnableSsl = true; smtpClient.Credentials = basicCredential; smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; message.From = fromAddress; message.Subject = "Заказ " + Membership.Provider.GetUser(System.Web.HttpContext.Current.User.Identity.Name, true).UserName; message.IsBodyHtml = false; message.Body = "order"; message.To.Add(new MailAddress("*****@*****.**")); //message.To.Add(new MailAddress("*****@*****.**")); //byte[] bytes = new byte[sw.ToString().Length * sizeof(char)]; //Buffer.BlockCopy(sw.ToString().ToCharArray(), 0, bytes, 0, bytes.Length); var stream = new MemoryStream((new NReco.PdfGenerator.HtmlToPdfConverter()).GeneratePdf(sw.ToString())); var fn = Guid.NewGuid() + "_order.pdf"; //var attachment = Attachment.CreateAttachmentFromString(sw.ToString(), fn, Encoding.GetEncoding(1251), "application/vnd.ms-excel"); var attachment = new Attachment(stream, fn, "application/pdf"); message.Attachments.Add(attachment); smtpClient.Send(message); cart.ClearCart(); dc.Orders.Add(order); dc.SaveChanges(); //foreach (OrderDetails t in order.Details) //{ // t.OrderId = order.OrderId; //} //dc.OrderDetails.AddRange(order.Details); //dc.SaveChanges(); } catch (Exception ex) { SmtpClient errClient = new SmtpClient(); NetworkCredential err = new NetworkCredential("*****@*****.**", "+79035249738abv!"); errClient.Host = "smtp.yandex.ru"; errClient.Port = 587; errClient.EnableSsl = true; errClient.Credentials = err; errClient.DeliveryMethod = SmtpDeliveryMethod.Network; MailAddress fromAddress = new MailAddress("*****@*****.**"); MailMessage errMessage = new MailMessage(); errMessage.From = fromAddress; errMessage.Subject = "Error vipdekor"; errMessage.IsBodyHtml = false; errMessage.Body = ex.Message; errMessage.To.Add(new MailAddress("*****@*****.**")); errClient.Send(errMessage); } //stream.Dispose(); //sw.Dispose(); return(View("Completed")); } else { List <SelectListItem> items = new List <SelectListItem>(); items.Add(new SelectListItem { Text = "", Value = "-1" }); items.Add(new SelectListItem { Text = "Курьер", Value = "0" }); items.Add(new SelectListItem { Text = "Самовывоз", Value = "1" }); items.Add(new SelectListItem { Text = "Доставка", Value = "2" }); items.Add(new SelectListItem { Text = "Экспресс-доставка", Value = "3" }); items.Find(s => s.Value == DeliveryType).Selected = true; ViewBag.DeliveryType = items; items = new List <SelectListItem>(); items.Add(new SelectListItem { Text = "", Value = "-1" }); items.Add(new SelectListItem { Text = "Другие способы оплаты", Value = "0" }); items.Add(new SelectListItem { Text = "Безналичная", Value = "1" }); items.Find(s => s.Value == PayType).Selected = true; ViewBag.PayType = items; items = new List <SelectListItem>(); var dc = new DataContext(); var tk = (from tcom in dc.TransportationCompanies select tcom).OrderBy(x => x.TKName); foreach (var compp in tk) { items.Add(new SelectListItem { Text = compp.TKName, Value = compp.Id.ToString() }); } ViewBag.TK = items; return(View(shipping)); } }
public void ProcessOrder(Cart cart, ShippingDetailsModel shippingDetails) { }