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()); } }
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); }
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)); }
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); } }