// 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); }
//Funcion que elimina la herencia para devolver una salida mas limpia private tbAlergenos LimpiarHerencia(tbAlergenos pAlerg) { pAlerg.tbAlerg_Ing.Clear(); return(pAlerg); }