Exemplo n.º 1
0
        public ActionResult Checkout(Cart cart,ShippingDetails detalles)
        {
            if (!cart.Lines.Any())
                ModelState.AddModelError("", "Tu carrito esta vacío.");

            if (ModelState.IsValid)
            {
                //Process
                _orderProcessor.Process(cart, detalles);
                cart.Clear();
                return View("Completed");
            }
            return View(detalles);
        }
        public void Process(Cart cart, ShippingDetails shipping)
        {
            using(var client = new SmtpClient())
            {
                ConfigureSMTP(client);
                var body = BuildMessage(cart, shipping);

                var message = new MailMessage(
                    _settings.MailFrom, //From
                    _settings.MailTo,//To
                    "Nueva orden enviada", //Subject
                    body);//Contenido

                if (_settings.WriteAsFile)
                {
                    message.BodyEncoding = Encoding.UTF8;
                }

                client.Send(message);
            }
        }
        private string BuildMessage(Cart cart, ShippingDetails shipping)
        {
            var sb = new StringBuilder();
            sb.AppendLine("Nueva orden enviada.")
            .AppendLine("--------------------")
            .AppendLine("Items:")
            .AppendLine("--------------------");

            foreach (var line in cart.Lines)
            {
                sb.AppendFormat("{0} x {1} (subtotal: {2:c}",
                    line.Product.Name,
                    line.Quantity,
                    line.SubTotal);
                sb.AppendLine("");
            }
            sb.AppendLine("");
            sb.AppendFormat("Total de la Orden: {0:c}", cart.TotalPrice);

            sb.AppendLine("--------------------")
            .AppendLine("Enviar a:")
            .AppendLine("--------------------")
            .AppendLine(shipping.Name)
            .AppendLine(shipping.Line1)
            .AppendLine(shipping.Line2 ?? "")
            .AppendLine(shipping.Line3 ?? "")
            .AppendLine(shipping.City)
            .AppendLine(shipping.State)
            .AppendLine(shipping.ZIP)
            .AppendLine(shipping.Country)
            .AppendLine("--------------------")
            .AppendFormat("Envoltura de regalo:{0}",
            shipping.GiftWrap ? "Si" : "No");

            return sb.ToString();
        }