Пример #1
0
        //public IHttpActionResult EditarOrden(dynamic request)
        public IHttpActionResult EditarOrden(ActualizarOrdenRequest editrequest)
        {
            try
            {
                //var ordenId = Convert.ToInt32(request.ordenId);

                Guid token     = Guid.Parse(Convert.ToString(Request.Headers.GetValues("Authorization").FirstOrDefault()));
                var  sesionRep = new SesionRepository();
                var  userId    = sesionRep.GetUserIdFromSession(token);
                if (userId == null)
                {
                    return(Unauthorized());
                }

                //var productos = request.productos;
                //var productos = (ActualizarOrdenRequest)request.productos;
                var productos = editrequest;

                var result = ordenRepository.EditarOrden(editrequest.ordenId, Convert.ToInt32(userId), productos);
                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Пример #2
0
        public BaseResponse EditarOrden(int ordenId, int usuarioId, ActualizarOrdenRequest request)
        {
            try
            {
                var db = new pedidoclick();
                db.Database.Connection.Open();

                var orden = db.t_Orden.Where(x => x.Id == ordenId).FirstOrDefault();
                if (orden == null)
                {
                    return(new BaseResponse {
                        Mensaje = "No se pudo encontrar la orden", Resultado = false
                    });
                }

                foreach (var p in request.productos.Where(x => x.agregar == false).ToList())
                {
                    var producto = db.t_OrdenDetalle.Where(x => x.IdOrden == ordenId && x.IdProducto == p.productoId).FirstOrDefault();
                    if (producto != null)
                    {
                        producto.Cantidad = p.cantidad;

                        if (p.borrado)
                        {
                            producto.Borrado        = p.borrado;
                            producto.IdUsuarioBorro = usuarioId;
                            producto.FechaBorro     = DateTime.Now;
                        }
                    }
                }

                var productosAgregar = new List <t_OrdenDetalle>();
                foreach (var p in request.productos.Where(x => x.agregar == true).ToList())
                {
                    var prod = new t_OrdenDetalle();
                    prod.IdProducto = p.productoId;
                    prod.Cantidad   = p.cantidad;
                    prod.FechaCreo  = DateTime.Now;
                    prod.IdOrden    = ordenId;
                    prod.Borrado    = false;

                    var productoDB = db.t_Producto.FirstOrDefault(x => x.Id == p.productoId);
                    if (productoDB != null)
                    {
                        prod.Precio = productoDB.Precio;
                    }

                    productosAgregar.Add(prod);
                }

                if (productosAgregar.Count > 0)
                {
                    db.t_OrdenDetalle.AddRange(productosAgregar);
                }

                db.SaveChanges();

                db.Database.Connection.Close();

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