public List <Recurso> GetRecursoAlocadoByEvento(DateTime data, string hora, Guid eventoId) { try { DbCommand cmd = baseDados.GetStoredProcCommand("AlocacaoSelectByEvento"); baseDados.AddInParameter(cmd, "@Evento", DbType.Guid, eventoId); baseDados.AddInParameter(cmd, "@Data", DbType.DateTime, data); baseDados.AddInParameter(cmd, "@Horario", DbType.String, hora); List <Recurso> listaRecursos = new List <Recurso>(); Recurso aux; RecursosDAO RecDAO = new RecursosDAO(); FaculdadesDAO faculDAO = new FaculdadesDAO(); using (RefCountingDataReader leitor = (RefCountingDataReader)baseDados.ExecuteReader(cmd)) { while (leitor.Read()) { if (((SqlDataReader)leitor.InnerReader).HasRows) { aux = new Recurso(); CategoriaRecurso catRec = new CategoriaRecurso(leitor.GetGuid(leitor.GetOrdinal("CategoriaId")), leitor.GetString(leitor.GetOrdinal("CatDescricao"))); aux.Categoria = catRec; aux.Descricao = leitor.GetString(leitor.GetOrdinal("Descricao")); aux.EstaDisponivel = leitor.GetBoolean(leitor.GetOrdinal("EstaDisponivel")); List <HorarioBloqueado> listaHB = RecDAO.GetHorarioBloqueadoByRecurso(leitor.GetGuid(leitor.GetOrdinal("RecursoId"))); aux.HorariosBloqueados = listaHB; aux.Id = leitor.GetGuid(leitor.GetOrdinal("RecursoId")); Faculdade facul = faculDAO.GetFaculdade(leitor.GetGuid(leitor.GetOrdinal("Vinculo"))); aux.Vinculo = facul; listaRecursos.Add(aux); } } } return(listaRecursos); } catch (SqlException ex) { throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex); } }
public List <HorariosEvento> GetHorariosEventosByIdDetalhados(Guid eventoId) { try { DbCommand cmd = baseDados.GetStoredProcCommand("HorariosEventosSelectById"); baseDados.AddInParameter(cmd, "@EventoId", DbType.Guid, eventoId); List <HorariosEvento> listaAux = new List <HorariosEvento>(); HorariosEvento aux; // SqlDataReader sqlReader; // return listaAux; using (RefCountingDataReader leitor = ((RefCountingDataReader)baseDados.ExecuteReader(cmd))) { EventoDAO eventoDAO = new EventoDAO(); Evento evento; while (leitor.Read()) { if (((SqlDataReader)leitor.InnerReader).HasRows) { try { evento = eventoDAO.GetEvento(leitor.GetGuid(leitor.GetOrdinal("EventoId"))); } catch (InvalidOperationException) { evento = null; } aux = HorariosEvento.GetHorariosEvento(leitor.GetGuid(leitor.GetOrdinal("HorariosEventoId")), evento, leitor.GetDateTime(leitor.GetOrdinal("Data")), leitor.GetString(leitor.GetOrdinal("HorarioInicio")), leitor.GetString(leitor.GetOrdinal("HorarioFim"))); listaAux.Add(aux); } } } if (listaAux != null) { List <HorariosEvento> listaFinal = new List <HorariosEvento>(); HorariosEvento heAux = null; foreach (HorariosEvento he in listaAux) { // A princípio, este ajuste não é mais necessário //if (he.HorarioInicio == "E ") // he.HorarioInicio = "EE"; //if (he.HorarioFim == "E ") // he.HorarioFim = "EE"; string[] lista = HorariosEvento.HorariosEntre(he.HorarioInicio, he.HorarioFim); foreach (string s in lista) { heAux = (HorariosEvento)he.Clone(); heAux.HorarioInicio = s; listaFinal.Add(heAux); } } return(listaFinal); } else { return(listaAux); } } catch (SqlException ex) { throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex); } }