public IHttpActionResult Crear(CrearOrdenRequest request)
        {
            try
            {
                int clienteId = Convert.ToInt32(Request.Headers.GetValues("Cliente").FirstOrDefault());
                var result    = ordenRepository.Crear(request, clienteId);

                if (result.Resultado)
                {
                    Util.Util.SendEmail("Pedido Creado", request.correo, "", "El pedido ha sido ingresado al sistema.");
                }
                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
示例#2
0
        public BaseResponse Crear(CrearOrdenRequest request, int clienteId)
        {
            try
            {
                var db = new pedidoclick();
                db.Database.Connection.Open();

                var orden = new t_Orden();
                orden.IdOrdenEstado     = 1; // Pendiente
                orden.Nombre            = request.nombre;
                orden.Telefono          = request.telefono;
                orden.CorreoElectronico = request.correo;
                orden.Identidad         = request.identidad;
                orden.Calle             = request.calle;
                orden.Avenida           = request.avenida;
                orden.Colonia           = request.colonia;
                orden.Ciudad            = request.ciudad;
                orden.Comentario        = request.comentario;
                orden.FechaCreo         = DateTime.Now;
                orden.IdCliente         = clienteId;

                db.t_Orden.Add(orden);
                db.SaveChanges();

                if (orden.Id <= 0)
                {
                    db.Database.Connection.Close();
                    return(new BaseResponse {
                        Mensaje = "Sucedio un error al generar la orden", Resultado = false
                    });
                }

                var ordenDetalle = new List <t_OrdenDetalle>();
                foreach (var d in request.productos)
                {
                    var detalle = new t_OrdenDetalle();
                    detalle.IdProducto = d.productoId;
                    detalle.Precio     = d.precio;
                    detalle.Cantidad   = d.cantidad;
                    detalle.IdOrden    = orden.Id;
                    detalle.FechaCreo  = DateTime.Now;

                    ordenDetalle.Add(detalle);
                }

                db.t_OrdenDetalle.AddRange(ordenDetalle);
                db.SaveChanges();

                db.Database.Connection.Close();

                return(new BaseResponse {
                    Mensaje = "Orden Generada", Resultado = true
                });
            }
            catch (Exception ex)
            {
                return(new BaseResponse {
                    Mensaje = "Sucedio un error al generar la orden", Resultado = false
                });
            }
        }