Пример #1
0
        public IHttpActionResult PutInsumo(int id, Insumo insumo)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            if (id != insumo.Id)
            {
                return BadRequest();
            }

            db.Entry(insumo).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!InsumoExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return StatusCode(HttpStatusCode.NoContent);
        }
Пример #2
0
        public IHttpActionResult PutInsumo(int id, Insumo insumo)
        {

            
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            if (id != insumo.Id)
            {
                return BadRequest();
            }

            //FAQ: No se puede usar este tipo de busqueda porque define un model insumo y al modificar la entrada
            //a la base de datos, da error de uso de entidad duplicada
            //var insumoOld = db.Insumos.Find(id).Nombre;

            //Expresion LinQ
            //iafar: almaceno el nombre anterior del insumo para buscar el trabajo del mismo nombre y modificarlo
            var nomViejo = (from i in db.Insumos
                            where i.Id == id
                            select i.Nombre)
                            .First();

            //iafar: modifica el estado del insumo de la base de datos
            //no se debe usar esto antes de guardarlo porque modifica todos los model del tipo insumo
            db.Entry(insumo).State = EntityState.Modified;

            try
            {
               

                var trabajo = db.Trabajos
                    .Where(t => t.Nombre == nomViejo)
                    .FirstOrDefault();

                trabajo.Nombre = insumo.Nombre;

                db.Entry(trabajo).State = EntityState.Modified;


                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!InsumoExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return StatusCode(HttpStatusCode.NoContent);
        }
Пример #3
0
        public IHttpActionResult PostInsumo(Insumo insumo)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            db.Insumos.Add(insumo);
            db.SaveChanges();

            return CreatedAtRoute("DefaultApi", new { id = insumo.Id }, insumo);
        }