public IActionResult Post([FromBody] Proveedor proveedor) { proveedor.CreatedOn = DateTime.Now; var result = _context.Proveedor.Add(proveedor); _context.SaveChanges(); return(Created("", result.Entity)); }
public IActionResult Post([FromBody] Cliente cliente) { cliente.CreatedOn = DateTime.Now; var result = _context.Cliente.Add(cliente); _context.SaveChanges(); return(Created("", result.Entity)); }
public IActionResult Post([FromBody] Categoria categoria) { categoria.CreatedOn = DateTime.Now; var result = _context.Categoria.Add(categoria); _context.SaveChanges(); return(Created("", result.Entity)); }
public IActionResult Post([FromBody] Usuario usuario) { var userWithSameEmail = _context.Usuarios.FirstOrDefault(x => x.Correo == usuario.Correo); if (userWithSameEmail == null) { usuario.IdRol = _appSettings.IdRolAdmin; usuario.Clave = StringExtension.HashPassword(usuario.Clave); usuario.CreatedOn = DateTime.Now; var result = _context.Usuarios.Add(usuario); _context.SaveChanges(); return(Created("", result.Entity)); } else { return(BadRequest(new { message = "El correo ya esta en uso" })); } }
public IActionResult Post([FromBody] PedidoDto dto) { // Consulta los id de producto enviados por el frontend var products = _context.Producto.Where(x => dto.ListaProductos.Select(s => s.IdProducto).Contains(x.Id)); decimal total = 0; // Calcula el valor total del pedido multiplicando el precio de cada producto por su cantidad y sumandolo foreach (var producto in products) { var cantidad = dto.ListaProductos.First(x => x.IdProducto == producto.Id).Cantidad; total += cantidad * producto.Precio; } var pedido = new Pedido { IdCliente = dto.IdCliente, IdUsuario = dto.IdUsuario, ValorTotal = total, CreatedOn = DateTime.Now }; var result = _context.Pedido.Add(pedido); _context.SaveChanges(); foreach (var item in dto.ListaProductos) { Producto producto = _context.Producto.First(x => x.Id == item.IdProducto); producto.Stock -= item.Cantidad; _context.Producto.Attach(producto); _context.Entry(producto).State = EntityState.Modified; _context.SaveChanges(); var productItem = new PedidoProducto { IdPedido = result.Entity.Id, IdProducto = item.IdProducto, Cantidad = item.Cantidad, ValorTotal = item.Cantidad * producto.Precio }; _context.PedidoProducto.Add(productItem); _context.SaveChanges(); } return(Created("", result.Entity)); }
public IActionResult Put(PedidoDto dto) { decimal total = 0; // Consulta los id de producto enviados por el frontend var products = _context.Producto.Where(x => dto.ListaProductos.Select(s => s.IdProducto).Contains(x.Id)); // Calcula el valor total del pedido multiplicando el precio de cada producto por su cantidad y sumandolo foreach (var producto in products) { var cantidad = dto.ListaProductos.First(x => x.IdProducto == producto.Id).Cantidad; total += cantidad * producto.Precio; } var pedido = new Pedido { Id = dto.Id, IdCliente = dto.IdCliente, IdUsuario = dto.IdUsuario, ValorTotal = total, }; var result = _context.Pedido.Attach(pedido); _context.Entry(pedido).State = EntityState.Modified; _context.SaveChanges(); var productItems = _context.PedidoProducto.Where(x => x.IdPedido == pedido.Id); foreach (var productItem in productItems) { if (!dto.ListaProductos.Any(x => x.IdProducto == productItem.IdProducto)) { using (MisPollosContext context = new MisPollosContext()) { Producto product = context.Producto.First(x => x.Id == productItem.IdProducto); product.Stock += productItem.Cantidad; context.SaveChanges(); } _context.PedidoProducto.Remove(productItem); } } _context.SaveChanges(); foreach (var item in dto.ListaProductos) { Producto producto = _context.Producto.First(x => x.Id == item.IdProducto); var cantidad = productItems.FirstOrDefault(x => x.IdProducto == item.IdProducto)?.Cantidad ?? 0; // 5 10 producto.Stock += cantidad - item.Cantidad; // 10 5 _context.Producto.Attach(producto); _context.Entry(producto).State = EntityState.Modified; _context.SaveChanges(); var pedidoProducto = productItems.FirstOrDefault(x => x.IdProducto == item.IdProducto); if (pedidoProducto == null) { pedidoProducto = new PedidoProducto { IdPedido = pedido.Id, IdProducto = item.IdProducto, Cantidad = item.Cantidad, ValorTotal = item.Cantidad * producto.Precio }; _context.PedidoProducto.Add(pedidoProducto); _context.SaveChanges(); } else { pedidoProducto.Cantidad = item.Cantidad; _context.PedidoProducto.Attach(pedidoProducto); _context.Entry(pedidoProducto).State = EntityState.Modified; _context.SaveChanges(); } } return(Ok(result.Entity)); }