Exemplo n.º 1
0
        public async Task <int> CrearAsync(UnidadDeMedidaResumen unidadMedida)
        {
            var nombre = unidadMedida.Nombre.ToLowerInvariant();

            if (await ExisteUnidadDeMedida(nombre))
            {
                throw new InvalidOperationException($"La unidad de medida '{nombre}' ya existe.");
            }

            var nuevaUnidad = new UnidadDeMedida
            {
                Nombre = nombre
            };

            db.UnidadesDeMedida.Add(nuevaUnidad);
            var filasAfectadas = await db.SaveChangesAsync();

            if (filasAfectadas > 0)
            {
                return(nuevaUnidad.Id);
            }
            else
            {
                return(-1);
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Post([FromBody] UnidadDeMedidaResumen unidadMedida)
        {
            if (!ModelState.IsValid)
            {
                return(HttpBadRequest(ModelState));
            }

            var unidadMedidaId = await unidadesDeMedida.CrearAsync(unidadMedida);

            var result = await unidadesDeMedida.ObtenerUnicaAsync(unidadMedidaId);

            return(CreatedAtRoute("GetUnidadMedida", new { id = unidadMedidaId }, result));
        }
Exemplo n.º 3
0
        public async Task <bool> EditarAsync(int id, UnidadDeMedidaResumen unidadMedida)
        {
            var unidadMedidaAEditar = await db.UnidadesDeMedida.SingleOrDefaultAsync(x => x.Id == id);

            if (unidadMedidaAEditar == null)
            {
                throw new RegistroNoEncontradoException($"No existe la unidad de medida {id} ");
            }

            unidadMedidaAEditar.Nombre = unidadMedida.Nombre.Trim();

            var filasAfectas = await db.SaveChangesAsync();

            return(filasAfectas > 0);
        }
Exemplo n.º 4
0
        public async Task <IActionResult> Put(int id, [FromBody] UnidadDeMedidaResumen unidadMedida)
        {
            if (!ModelState.IsValid)
            {
                return(HttpBadRequest(ModelState));
            }

            var modificado = await unidadesDeMedida.EditarAsync(id, unidadMedida);

            if (modificado)
            {
                var result = await unidadesDeMedida.ObtenerUnicaAsync(id);

                return(Ok(result));
            }
            else
            {
                return(new HttpStatusCodeResult((int)HttpStatusCode.NotModified));
            }
        }