public IHttpActionResult Actualizar([FromBody] ActualizarCategoriaRequest request) { try { string userToken = Convert.ToString(Request.Headers.Authorization); var response = categoriaRepository.Actualizar(request, userToken); return(Ok(response)); } catch (Exception ex) { return(InternalServerError(ex)); } }
public BaseResponse Actualizar(ActualizarCategoriaRequest request, string userToken) { try { var db = new pedidoclick(); db.Database.Connection.Open(); var sesionRep = new SesionRepository(); int?userId = sesionRep.GetUserIdFromSession(Guid.Parse(userToken)); var idCategoria = Convert.ToInt32(request.IdCategoria); var categoriaDB = db.t_Categoria.FirstOrDefault(x => x.Id == idCategoria); if (categoriaDB == null) { return new BaseResponse { Mensaje = "La categoria no existe en la base de datos.", Resultado = false } } ; // Actualizar nombre categoriaDB.Categoria = request.Categoria; List <t_Producto> nuevosProductosDB = new List <t_Producto>(); var nuevosProductos = request.Productos.Where(x => x.Nuevo); foreach (var p in nuevosProductos) { nuevosProductosDB.Add(new t_Producto() { IdCategoria = idCategoria, Producto = p.ProductoNombre, Descripcion = p.Descripcion, Precio = p.Precio, Activo = p.Activo, FechaCreo = DateTime.Now, IdUsuarioCreo = userId, Borrado = false }); } db.t_Producto.AddRange(nuevosProductosDB); var productosActualizar = request.Productos.Where(x => x.ProductoId > 0); foreach (var producto in productosActualizar) { var p = db.t_Producto.Where(x => x.Id == producto.ProductoId).FirstOrDefault(); p.Producto = producto.ProductoNombre; p.Descripcion = producto.Descripcion; p.Activo = producto.Activo; p.Borrado = producto.Borrado; p.Precio = producto.Precio; p.FechaCreo = DateTime.Now; p.IdCategoria = idCategoria; p.IdUsuarioCreo = userId; } db.SaveChanges(); db.Database.Connection.Close(); return(new BaseResponse { Mensaje = "Categoria Actualizada", Resultado = true, Objeto = categoriaDB.Id }); } catch (Exception ex) { return(new BaseResponse { Mensaje = "Sucedio un error al actualizar la categoria: " + ex.Message, Resultado = false }); } }