public Guid AgregarEncuentro(Encuentro encuentro) { if (DatosInvalidosEncuentro(encuentro)) { throw new EncuentroDataException(); } Deporte deporte = _deportesRepository.ObtenerDeportePorNombre(encuentro.Deporte.Nombre); if (deporte == null) { throw new NoExisteDeporteException(); } Equipo equipoLocal = _equiposRepository.ObtenerEquipoPorDeporte(encuentro.Deporte.Nombre, encuentro.EquipoLocal.Nombre); Equipo equipoVisitante = _equiposRepository.ObtenerEquipoPorDeporte(encuentro.Deporte.Nombre, encuentro.EquipoVisitante.Nombre); if (equipoLocal == null || equipoVisitante == null) { throw new NoExisteEquipoException(); } if (_encuentrosRepository.ExisteEncuentroEnFecha(encuentro.FechaHora, equipoLocal.Id) || _encuentrosRepository.ExisteEncuentroEnFecha(encuentro.FechaHora, equipoVisitante.Id)) { throw new ExisteEncuentroEnFecha(); } encuentro.EquipoLocal.Id = equipoLocal.Id; encuentro.EquipoVisitante.Id = equipoVisitante.Id; encuentro.Deporte.Id = deporte.Id; _encuentrosRepository.Insert(encuentro); _unitOfWork.Save(); return(encuentro.Id); }
private bool ExisteEncuentroParticipante(DateTime fecha, List <Participante> participantes) { List <Encuentro> encuentros = _encuentrosRepository.ObtenerEncuentros(); foreach (Participante participante in participantes) { if (_encuentrosRepository.ExisteEncuentroEnFecha(fecha, participante.Id)) { return(true); } } return(false); }