public async Task <int> CrearAsync(MarcaResumen marca) { var nombre = marca.Nombre.ToLowerInvariant(); if (await ExisteMarca(nombre)) { throw new InvalidOperationException($"La marca '{nombre}' ya existe."); } var nuevaMarca = new Marca { Nombre = nombre }; db.Marcas.Add(nuevaMarca); var filasAfectadas = await db.SaveChangesAsync(); if (filasAfectadas > 0) { return(nuevaMarca.Id); } else { return(-1); } }
public async Task <IActionResult> Post([FromBody] MarcaResumen marca) { if (!ModelState.IsValid) { return(HttpBadRequest(ModelState)); } var marcaId = await marcas.CrearAsync(marca); var result = await marcas.ObtenerUnicaAsync(marcaId); return(CreatedAtRoute("GetMarca", new { id = marcaId }, result)); }
public async Task <bool> EditarAsync(int id, MarcaResumen marca) { var marcaAEditar = await db.Marcas.SingleOrDefaultAsync(x => x.Id == id); if (marcaAEditar == null) { throw new RegistroNoEncontradoException($"No existe la marca {id} "); } marcaAEditar.Nombre = marca.Nombre.Trim(); var filasAfectas = await db.SaveChangesAsync(); return(filasAfectas > 0); }
public async Task <IActionResult> Put(int id, [FromBody] MarcaResumen marca) { if (!ModelState.IsValid) { return(HttpBadRequest(ModelState)); } var modificado = await marcas.EditarAsync(id, marca); if (modificado) { var result = await marcas.ObtenerUnicaAsync(id); return(Ok(result)); } else { return(new HttpStatusCodeResult((int)HttpStatusCode.NotModified)); } }