public async Task <int> CrearAsync(ProveedorDetalle proveedor, int usuarioId) { var nombre = proveedor.Nombre.Trim().ToLowerInvariant(); var nombreContacto = proveedor.NombreDeContacto?.Trim()?.ToLowerInvariant(); var direccion = proveedor.Direccion?.Trim()?.ToLowerInvariant(); if (await ExisteProveedor(nombre)) { throw new InvalidOperationException($"El proveedor {nombre} ya existe."); } var nuevoProveedor = new Proveedor { Nombre = nombre, NombreDeContacto = nombreContacto, Direccion = direccion, UsuarioCreacionId = usuarioId, UsuarioModificaId = usuarioId }; db.Proveedores.Add(nuevoProveedor); var filasAfectadas = await db.SaveChangesAsync(); if (filasAfectadas > 0) { return(nuevoProveedor.Id); } else { return(-1); } }
public async Task <IActionResult> Post([FromBody] ProveedorDetalle proveedor) { if (!ModelState.IsValid) { return(HttpBadRequest(ModelState)); } var usuarioId = User.Id(); var proveedorId = await proveedores.CrearAsync(proveedor, usuarioId); var result = await proveedores.ObtenerUnicoAsync(proveedorId); return(CreatedAtRoute("GetProveedor", new { id = proveedorId }, result)); }
public async Task <IActionResult> Put(int id, [FromBody] ProveedorDetalle proveedor) { if (!ModelState.IsValid) { return(HttpBadRequest(ModelState)); } var usuarioId = User.Id(); var modificado = await proveedores.EditarAsync(id, proveedor, usuarioId); if (modificado) { var result = await proveedores.ObtenerUnicoAsync(id); return(Ok(result)); } else { return(new HttpStatusCodeResult((int)HttpStatusCode.NotModified)); } }
public async Task <bool> EditarAsync(int id, ProveedorDetalle proveedor, int usuarioId) { var proveedorAEditar = await db.Proveedores.Include(x => x.Telefonos).Include(x => x.Productos).SingleOrDefaultAsync(x => x.Id == id); if (proveedorAEditar == null) { throw new RegistroNoEncontradoException($"No existe el proveedor {id}"); } var nombre = proveedor.Nombre.Trim().ToLowerInvariant(); var nombreContacto = proveedor.NombreDeContacto.Trim().ToLowerInvariant(); var direccion = proveedor.Direccion.Trim().ToLowerInvariant(); proveedorAEditar.Nombre = nombre; proveedorAEditar.NombreDeContacto = nombreContacto; proveedorAEditar.Direccion = direccion; proveedorAEditar.UsuarioCreacionId = usuarioId; proveedorAEditar.UsuarioModificaId = usuarioId; var filasAfectadas = await db.SaveChangesAsync(); return(filasAfectadas > 0); }