public IHttpActionResult DeleteZonaTorneo(int id) { ZonaTorneo zonaTorneo = db.ZonaTorneos.Find(id); if (zonaTorneo == null) { return(NotFound()); } db.ZonaTorneos.Remove(zonaTorneo); db.SaveChanges(); return(Ok(zonaTorneo)); }
public IHttpActionResult GetZonaTorneo(int id) // fpaz: devuelvo la info de una zona de un torneo en particular { try { ZonaTorneo zonaTorneo = (from z in db.ZonaTorneos where z.Id == id select z) .Include(t => t.Torneo) .Include(e => e.EquiposTorneo .Select(eq => eq.Equipo.ImagenesEquipo) ) .FirstOrDefault(); if (zonaTorneo == null) { return(NotFound()); } else { #region fpaz: obtengo los logos actuales de los equipos var equiposTorneo = zonaTorneo.EquiposTorneo.ToList(); List <EquipoTorneo> equiposTorneoConImagen = new List <EquipoTorneo>(); foreach (var item in equiposTorneo) { ImagenEquipo ultimaImagenEquipo = item.Equipo.ImagenesEquipo.LastOrDefault(); List <ImagenEquipo> imagenesEquipo = new List <ImagenEquipo>(); imagenesEquipo.Add(ultimaImagenEquipo); item.Equipo.ImagenesEquipo = imagenesEquipo; equiposTorneoConImagen.Add(item); } zonaTorneo.EquiposTorneo = equiposTorneoConImagen; #endregion } return(Ok(zonaTorneo)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public IHttpActionResult PostZonaTorneo(ZonaTorneo zonaTorneo) // funcion para agregar una nueva zona al torneo { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { db.ZonaTorneos.Add(zonaTorneo); db.SaveChanges(); return(Ok(zonaTorneo)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public IHttpActionResult PutZonaTorneo(int id, ZonaTorneo zonaTorneo) //fpaz: actualizacion de los datos de una zona de un torneo { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != zonaTorneo.Id) { return(BadRequest()); } try { var zonaOrig = (from z in db.ZonaTorneos //obtengo los datos originales de la zona que voy a modificar where z.Id == id select z) .Include(e => e.EquiposTorneo) .FirstOrDefault(); if (zonaOrig != null) { #region update de Equipos de la Zona que juegan el torneo var equiposOriginales = zonaOrig.EquiposTorneo; // parte para carga de nuevos equipos al torneo List <EquipoTorneo> equiposAgregados = new List <EquipoTorneo>(); foreach (var equipoAdd in zonaTorneo.EquiposTorneo) { var equipo = (from equipoOrig in equiposOriginales // verifico si el equipo esta en el obj modificado where equipoOrig.EquipoId == equipoAdd.EquipoId select equipoOrig).FirstOrDefault(); if (equipo == null) // si no encontro el equipo agrego al array para su carga { var eq = db.Equipoes.Find(equipoAdd.EquipoId); if (eq != null) { var et = new EquipoTorneo() { EquipoId = eq.Id, ZonaTorneoId = zonaOrig.Id }; equiposAgregados.Add(et); } } } //parte para eliminacion de equipos List <EquipoTorneo> equiposEliminados = new List <EquipoTorneo>(); foreach (var equipoOrig in equiposOriginales) // eliminacion de equipos que ya no estan en el array { var eo = (from e in zonaTorneo.EquiposTorneo // verifico si el equipo original esta en el obj modificado where equipoOrig.EquipoId == e.EquipoId select e).FirstOrDefault(); if (eo == null) // si no encontro el equipo la elimino del array { equiposEliminados.Add(equipoOrig); } } foreach (var item in equiposAgregados) { db.EquipoTorneos.Add(item); //torneoOrig.EquipoTorneos.Add(item); } foreach (var item in equiposEliminados) { db.EquipoTorneos.Remove(item); //torneoOrig.EquipoTorneos.Remove(item); } #endregion zonaOrig.Descripcion = zonaTorneo.Descripcion; zonaOrig.TorneoId = zonaTorneo.TorneoId; } db.SaveChanges(); return(Ok()); } catch (Exception ex) { return(BadRequest(ex.Message)); } }