Example #1
0
        // POST: api/Alergenos
        public IHttpActionResult Post(tbAlergenos pAlergeno)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            gDB.tbAlergenos.Add(pAlergeno);

            try
            {
                gDB.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (ExisteAlergeno(pAlergeno.id_Alergeno))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }
            return(CreatedAtRoute("DefaultApi", new { id = pAlergeno.id_Alergeno }, pAlergeno));
        }
        // GET: api/ObtenerPlatos/5
        public IQueryable <tbPlatos> Get(int pIdAlergeno)
        {
            tbAlergenos     vAlergeno = gDB.tbAlergenos.Find(pIdAlergeno);
            List <tbPlatos> lPlatos   = new List <tbPlatos>();

            if (vAlergeno != null)
            {
                lPlatos = RecuperarPlatos(vAlergeno);
            }
            return(lPlatos.AsQueryable());
        }
        //Devuelve los platos de un alergeno dado
        private List <tbPlatos> RecuperarPlatos(tbAlergenos pAlerg)
        {
            List <tbPlatos> lRespPlato = new List <tbPlatos>();

            //Recorremos las tablas para poder llegar a los Platos
            foreach (var vAlergXIng in pAlerg.tbAlerg_Ing)
            {
                foreach (var vIngXPlato in vAlergXIng.tbIngredientes.tbIng_Plato)
                {
                    if (!lRespPlato.Exists(elemento => elemento.Id_Plato == vIngXPlato.tbPlatos.Id_Plato))
                    {
                        lRespPlato.Add(LimpiarHerencia(vIngXPlato.tbPlatos));
                    }
                }
            }
            return(lRespPlato);
        }
Example #4
0
 //Funcion que elimina la herencia para devolver una salida mas limpia
 private tbAlergenos LimpiarHerencia(tbAlergenos pAlerg)
 {
     pAlerg.tbAlerg_Ing.Clear();
     return(pAlerg);
 }