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()));
        }
Example #2
0
        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();
        }
Example #3
0
        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"));
            }
        }
Example #6
0
        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();
                }
            }
        }
Example #8
0
        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));
            }
        }
Example #9
0
 public void ProcessOrder(Cart cart, ShippingDetailsModel shippingDetails)
 {
 }