public async Task <Evento> Adicionar(Evento entity) { var sala = salaRepository.Find(entity.IdSala); if (sala != null) { var eventos = repository.Find(ev => (entity.DataInicio.Date >= ev.DataInicio.Date && entity.DataInicio.Date <= ev.DataFim.Date) || // Evento novo inicia durante outro evento (entity.DataFim.Date >= ev.DataInicio.Date && entity.DataFim.Date <= ev.DataFim.Date) || // Evento novo termina durante outro evento (entity.DataInicio.Date <ev.DataInicio.Date && entity.DataFim.Date> ev.DataFim.Date)).ToList(); // Evento novo começa antes e termina depois de um evento if (!eventos.Any()) { return(await repository.Add(entity)); } else { throw new Exception("A duração de um evento não pode sobrepor outro"); } } else { throw new Exception("Sala não encontrada"); } }
public Sala ObtenerSala(int id) { Sala Sala = new Sala(); try { Sala = _SalaRepository.Find(id); } catch (Exception ex) { Log.Error(ex.ToString()); } return(Sala); }