コード例 #1
0
 public IActionResult Index(string returnUrl)
 {
     return(View(new CartIndexViewModel
     {
         Lines = _cartProvider.Lines.ToList(),
         ReturnUrl = returnUrl,
         TotalValue = _cartProvider.ComputeTotalValue()
     }));
 }
コード例 #2
0
        public IViewComponentResult Invoke()
        {
            var model = new CartSummaryViewModel
            {
                Lines      = _cartProvider.Lines.ToList(),
                TotalValue = _cartProvider.ComputeTotalValue()
            };

            return(View("Default", model));
        }
コード例 #3
0
        public void ProcessOrder(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)
                {
                    var fullPath = Path.Combine(_hostingEnvironment.WebRootPath, _emailSettings.FileLocation);
                    if (!Directory.Exists(fullPath))
                    {
                        Directory.CreateDirectory(fullPath);
                    }
                    smtpClient.DeliveryMethod
                        = SmtpDeliveryMethod.SpecifiedPickupDirectory;
                    smtpClient.PickupDirectoryLocation = fullPath;
                    smtpClient.EnableSsl = false;
                }

                StringBuilder body = new StringBuilder()
                                     .AppendLine("Новый заказ обработан")
                                     .AppendLine("---")
                                     .AppendLine("Товары:");

                foreach (var line in _cartProvider.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}", _cartProvider.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);
            }
        }