Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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);
        }
Beispiel #4
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));
            }
        }