// POST: api/Platos public IHttpActionResult Post(tbPlatos pPlato) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } gDB.tbPlatos.Add(pPlato); try { gDB.SaveChanges(); } catch (DbUpdateException) { if (ExistePlato(pPlato.Id_Plato)) { return(Conflict()); } else { throw; } } return(CreatedAtRoute("DefaultApi", new { id = pPlato.Id_Plato }, pPlato)); }
// GET: api/ObtenerAlergenos/1 public IQueryable <tbAlergenos> Get(int pIdPlato) { tbPlatos vPlato = gDB.tbPlatos.Find(pIdPlato); List <tbAlergenos> lAlergenos = new List <tbAlergenos>(); if (vPlato != null) { lAlergenos = RecuperarAlergenos(vPlato); } return(lAlergenos.AsQueryable()); }
//Recorremos las tablas para poder llegar a los alergenos private List <tbAlergenos> RecuperarAlergenos(tbPlatos pPlato) { List <tbAlergenos> lRespAlerg = new List <tbAlergenos>(); foreach (var vIngXPlato in pPlato.tbIng_Plato) { foreach (var vAlergXIng in vIngXPlato.tbIngredientes.tbAlerg_Ing) { if (!lRespAlerg.Exists(elemento => elemento.id_Alergeno == vAlergXIng.tbAlergenos.id_Alergeno)) { lRespAlerg.Add(LimpiarHerencia(vAlergXIng.tbAlergenos)); } } } return(lRespAlerg); }
//Funcion que borra la herencia para que la salida sea mas limpia private tbPlatos LimpiarHerencia(tbPlatos pPlato) { pPlato.tbIng_Plato.Clear(); return(pPlato); }