Exemplo n.º 1
0
        public async Task <ResponseConfirmarOrden> CreateNotificationOrden(RequestConfirmarOrden orden)
        {
            RequestConfirmarOrden    ordenCreada;
            MessagesConfirmarOrdenes respuesta = new MessagesConfirmarOrdenes();
            string body;

            try
            {
                ordenCreada = await _servicio.CreateOrden(orden);

                if (ordenCreada == null)
                {
                    return(respuesta.BadOrden());
                }
                body = this.GetMsgEmail(orden);
                if (!await _sendEmails.SendEmail(orden.EmailCliente, body))
                {
                    return(respuesta.EmailNoSend());
                }
                return(respuesta.OkOrden());
            }
            catch
            {
                return(respuesta.BadOrden());
            }
        }
Exemplo n.º 2
0
        public async Task <RequestConfirmarOrden> CreateOrden(RequestConfirmarOrden orden)
        {
            orden.FechaCreacion = DateTime.Now.ToString();
            var EntityOrden = _mapper.Map <Ordenes>(orden);
            var ordenCreada = await _repositoryOrdenes.AddAsync(EntityOrden);

            var ListaDetalleOrden = orden.DetallesOrden;
            List <DetalleOrdenes> ListaEnDetalleOrdenes = new List <DetalleOrdenes>();

            foreach (var elemento in ListaDetalleOrden)
            {
                var EntityDetalleOrden = _mapper.Map <DetalleOrdenes>(elemento);
                EntityDetalleOrden.OrdenId = ordenCreada.Id;
                ListaEnDetalleOrdenes.Add(EntityDetalleOrden);
            }

            await _repositoryDetalleOrdenes.AddRangeAsync(ListaEnDetalleOrdenes);

            return(orden);
        }
Exemplo n.º 3
0
        public async Task <ActionResult <ResponseConfirmarOrden> > Post([FromBody] RequestConfirmarOrden orden)
        {
            DatosPago datosPago;

            datosPago       = orden.DatosPago.First();
            datosPago.Valor = orden.PrecioTotal;
            var resultadoPago = await _restClientPagos.AuthPaymentOrden(datosPago);

            if (resultadoPago == 0)
            {
                orden.Estado = "RECHAZADA";
                return(await this.CreateNotificationOrden(orden));
            }
            orden.PagoId = resultadoPago;
            var resultadoInventario = await _restClientInventario.RemoveProductInventory(orden.DetallesOrden);

            if (resultadoInventario == 0)
            {
                orden.Estado = "PENDIENTE INVENTARIO";
                return(await this.CreateNotificationOrden(orden));
            }
            orden.Estado = "ACEPTADA";
            return(await this.CreateNotificationOrden(orden));
        }
Exemplo n.º 4
0
        public string GetMsgEmail(RequestConfirmarOrden orden)
        {
            string estadoOrden = orden.Estado;;

            switch (estadoOrden)
            {
            case "PENDIENTE":
                string bodyOrdenPendiente =
                    "<body>" +
                    "<h1>TU PEDIDO ESTA EN PROCESO DE APROBACIÓN </h1>" +
                    "<h4>Número de orden:" + orden.Id.ToString() + "</h4>" +
                    "<span>Tenemos noticias, " + orden.EmailCliente + "</span>" +
                    "<br/><br/>" +
                    "<span>Tu pedido ha sido recibido, pero está en proceso de pago. Recibirás un nuevo correo indicando el estado del pago y de tu orden.</span>" +
                    "<br/><br/>" +
                    "<span>Gracias por tu compra.</span>" +
                    "<br/><br/>" +
                    "<span>El equipo K' ALL SONY.</span>" +
                    "<body>";
                return(bodyOrdenPendiente);

            case "RECHAZADA":
                string bodyOrdenRechazada =
                    "<body>" +
                    "<h1>TU PEDIDO HA SIDO RECHAZADO <h1>" +
                    "<h4>Número de orden:" + orden.Id.ToString() + "<h4Z" +
                    "<span>Tenemos noticias, " + orden.EmailCliente + "<span>" +
                    "<br/><br/>" +
                    "<span>Tu pedido ha sido rechaza, el pago no fue exitoso. Te invitamos a intentar nuevamente hacer la compra.<span>" +
                    "<br/><br/>" +
                    "<span>Gracias.<span>" +
                    "<br/><br/>" +
                    "<span>El equipo K' ALL SONY.<span>" +
                    "<body>";
                return(bodyOrdenRechazada);

            case "ACEPTADA":
                string bodyOrdenAceptada =
                    "<body>" +
                    "<h1>TU PEDIDO ESTA EN PROCESO DE APROBACION <h1>" +
                    "<h4>Número de orden:" + orden.Id.ToString() + "<h4>" +
                    "<span>Tenemos noticias," + orden.EmailCliente + "<span>" +
                    "<br/><br/>" +
                    "<span>Tu pedido ha sido aceptado. Iniciaremos con la preparación de tu orden. Recibirás el estado del envío y tu factura en correos electrónicos independiente.<span>" +

                    "<br/><br/>" +
                    "<span>Gracias por tu compra.<span>" +
                    "<br/><br/>" +
                    "<span>El equipo K' ALL SONY.<span>" +
                    "<body>";
                return(bodyOrdenAceptada);

            case "PENDIENTE INVENTARIO":

                string bodyOrdenInventario =
                    "<body>" +
                    "<h1>TU PEDIDO ESTA EN PROCESO DE VERIFICACION DE INVENTARIO <h1>" +
                    "<h4>Número de orden:" + orden.Id.ToString() + "<h4Z" +
                    "<span>Tenemos noticias," + orden.EmailCliente + "<span>" +
                    "<br/><br/>" +
                    "<span>Tu pedido ha sido recibido. Iniciaremos con la verificación y preparación de tu orden. Recibirás el estado de tu orden en un nuevo correo.<span>" +

                    "<br/><br/>" +
                    "<span>Gracias por tu compra.<span>" +
                    "<br/><br/>" +
                    "<span>El equipo K' ALL SONY.<span>" +
                    "<body>";
                return(bodyOrdenInventario);

            default:
                return(null);
            }
        }