Example #1
0
    protected void btnAdicionar_Click(object sender, EventArgs e)
    {
        if (ddlRecurso.SelectedIndex != 0)
        {
            DateTime data = Convert.ToDateTime(Session["Data"]);
            string horario = (string)Session["Horario"];
            Guid eventoId = new Guid(Request.QueryString["EventoId"]);
            Guid recId = new Guid(ddlRecurso.SelectedValue);

            Evento evento = eventoBO.GetEventoById(eventoId);
            Recurso rec = controleRecursos.GetRecursoById(recId);
            Alocacao aloc = new Alocacao(rec, data, horario, null, evento);

            alocBO.UpdateAlocacao(aloc);

            List<Recurso> recAlocados = alocBO.GetRecursoAlocadoByEvento(data, horario, eventoId);
            LBoxAlocados.DataSource = recAlocados;
            LBoxAlocados.DataTextField = "Descricao";
            LBoxAlocados.DataValueField = "Id";
            LBoxAlocados.DataBind();

            ddlCategoriaRecurso.SelectedIndex = 0;
            ddlRecurso.SelectedIndex = 0;
            ddlRecurso.Enabled = false;

            lblStatus.Text = "Recurso adicionado com sucesso.";
        }
        else
        {
            lblStatus.Text = "Não é possível adicionar este recurso.";
        }
    }
    public void alocar(string recString, string dataString, string horario, string aulaString)
    {
        Guid recId = new Guid(recString);
        Guid aulaId = new Guid(aulaString);
        DateTime data = Convert.ToDateTime(dataString);

        //FIXME: pode ocorrer um problema se outro usuário selecionar o recurso antes...
        Aula aula = aulaBo.GetAulaById(aulaId);

        Recurso rec = recursosBO.GetRecursoById(recId);
        System.Diagnostics.Debug.WriteLine("Alocando: " + rec.Descricao);
        Alocacao aloc = new Alocacao(rec, data, horario, aula, null);
        alocBO.UpdateAlocacao(aloc);

        /* Nao e' mais necessario: o DAO foi alterado para verificar isso (GetRecursosDisponiveis)
         *
        // Verifica se algum outro recurso depende deste, em caso positivo aloca também
        Dictionary<Guid, Tuple<Guid, Guid>> blocks = (Dictionary<Guid, Tuple<Guid, Guid>>) Application["blocks"];
        Tuple<Guid, Guid> bloqueados = blocks[recId];
        if(bloqueados.Item1 != Guid.Empty)
        {
            rec = recursosBO.GetRecursoById(bloqueados.Item1);
            System.Diagnostics.Debug.WriteLine("Bloq. dependente: " + rec.Descricao);
            aloc = new Alocacao(rec, data, horario, aula, null);
            alocBO.UpdateAlocacao(aloc);
        }
        if (bloqueados.Item2 != Guid.Empty)
        {
            rec = recursosBO.GetRecursoById(bloqueados.Item2);
            System.Diagnostics.Debug.WriteLine("Bloq. dependente: " + rec.Descricao);
            aloc = new Alocacao(rec, data, horario, aula, null);
            alocBO.UpdateAlocacao(aloc);
        }
         */
    }
Example #3
0
        public Alocacao GetById(int Id)
        {
            Dictionary <string, object> parms = new Dictionary <string, object> {
                { "Id", Id }
            };
            Alocacao sala = Db.Get(_sqlGetById, Make, parms);

            return(sala);
        }
Example #4
0
 public object[] Take(Alocacao alocacao)
 {
     return(new object[]
     {
         "@Id", alocacao.Id,
         "@Data", alocacao.DataAlocacao,
         "@Sala", alocacao.Sala.Id,
         "@Funcionario", alocacao.Funcionario.Id
     });
 }
Example #5
0
        public void AlocacaoServico_BuscarPorIdRepositorio_DeveFalhar()
        {
            Alocacao alocacao = ObjectMother.ObterAlocacaoValida();

            alocacao.Id = 0;

            Action act = () => { alocacaoServico.BuscarPorId(alocacao.Id); };

            act.Should().Throw <IdentifierUndefinedException>();
        }
Example #6
0
        public Alocacao GetAlocacao(Guid recursoid, DateTime data, string horario)
        {
            try
            {
                DbCommand cmd = baseDados.GetStoredProcCommand("AlocacaoSelect");
                baseDados.AddInParameter(cmd, "@RecursoId", DbType.Guid, recursoid);
                baseDados.AddInParameter(cmd, "@Data", DbType.DateTime, data);
                baseDados.AddInParameter(cmd, "@Horario", DbType.String, horario);

                Alocacao aux = null;

                using (IDataReader leitor = baseDados.ExecuteReader(cmd))
                {
                    leitor.Read();

                    RecursosDAO recursoDao = new RecursosDAO();
                    Recurso     recurso    = recursoDao.GetRecurso(recursoid);

                    AulasDAO aulaDao = new AulasDAO();
                    Aula     aula;

                    Guid?aulaId = leitor["AulaId"] as Guid?;
                    if (aulaId.HasValue)
                    {
                        aula = aulaDao.GetAula(aulaId.Value);
                    }
                    else
                    {
                        aula = null;
                    }

                    EventoDAO eventoDao = new EventoDAO();
                    Evento    evento;

                    Guid?eventoID = leitor["EventoId"] as Guid?;
                    if (eventoID.HasValue)
                    {
                        evento = eventoDao.GetEvento(eventoID.Value);
                    }
                    else
                    {
                        evento = null;
                    }



                    aux = new Alocacao(recurso, leitor.GetDateTime(leitor.GetOrdinal("Data")), leitor.GetString(leitor.GetOrdinal("Horario")), aula, evento);
                }
                return(aux);
            }
            catch (SqlException ex)
            {
                throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex);
            }
        }
Example #7
0
        public List <Alocacao> GetRecursosAlocados(DateTime data, string hora)
        {
            try
            {
                List <Alocacao> aux = new List <Alocacao>();

                DbCommand cmd = baseDados.GetStoredProcCommand("AlocacaoSelectAlocados");
                baseDados.AddInParameter(cmd, "@Data", DbType.DateTime, data);
                baseDados.AddInParameter(cmd, "@Hora", DbType.String, hora);

                RecursosDAO recursoDao = new RecursosDAO();
                EventoDAO   eventoDao  = new EventoDAO();
                using (IDataReader leitor = baseDados.ExecuteReader(cmd))
                {
                    while (leitor.Read())
                    {
                        Recurso recurso = recursoDao.GetRecurso(leitor.GetGuid(leitor.GetOrdinal("RecursoId")));

                        AulasDAO aulaDao = new AulasDAO();
                        Aula     aula;
                        Evento   evento;

                        Guid?aulaId = leitor["AulaId"] as Guid?;
                        if (aulaId.HasValue)
                        {
                            aula = aulaDao.GetAula(aulaId.Value);
                        }
                        else
                        {
                            aula = null;
                        }

                        Guid?eventoID = leitor["EventoId"] as Guid?;
                        if (eventoID.HasValue)
                        {
                            evento = eventoDao.GetEvento(eventoID.Value);
                        }
                        else
                        {
                            evento = null;
                        }

                        Alocacao aloc = new Alocacao(recurso, leitor.GetDateTime(leitor.GetOrdinal("Data")), hora, aula, evento);

                        aux.Add(aloc);
                    }
                }

                return(aux);
            }
            catch (SqlException ex)
            {
                throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex);
            }
        }
Example #8
0
 public Troca(Guid id, Alocacao alocAtual, Alocacao alocDesejada, bool? aceitou, bool pendente, bool visualizada, string horario, DateTime data)
 {
     this.id = id;
     alocacaoAtual = alocAtual;
     alocacaoDesejada = alocDesejada;
     foiAceita = aceitou;
     estaPendente = pendente;
     foiVisualizada = visualizada;
     this.horario = horario;
     this.data = data;
 }
Example #9
0
        public List <Troca> GetNaoVisualizadasByEvento(Guid eventoId, DateTime data, string horario)
        {
            try
            {
                DbCommand cmd = baseDados.GetStoredProcCommand("TrocasSelectNaoVisualizadasByEvento");
                baseDados.AddInParameter(cmd, "@Data", DbType.DateTime, data);
                baseDados.AddInParameter(cmd, "@Horario", DbType.String, horario);
                baseDados.AddInParameter(cmd, "@EventoId", DbType.Guid, eventoId);

                List <Troca> aux   = new List <Troca>();
                Troca        troca = null;

                AlocacaoDAO alocDAO = new AlocacaoDAO();
                RecursosDAO recDAO  = new RecursosDAO();

                using (IDataReader leitor = baseDados.ExecuteReader(cmd))
                {
                    while (leitor.Read())
                    {
                        Guid trocaId = leitor.GetGuid(leitor.GetOrdinal("Id"));

                        Recurso recAtual    = recDAO.GetRecurso(leitor.GetGuid(leitor.GetOrdinal("IdRecAtual")));
                        Recurso recDesejado = recDAO.GetRecurso(leitor.GetGuid(leitor.GetOrdinal("IdRecDesejado")));

                        Alocacao alocAtual    = alocDAO.GetAlocacao(leitor.GetGuid(leitor.GetOrdinal("IdRecAtual")), data, horario);
                        Alocacao alocDesejada = alocDAO.GetAlocacao(leitor.GetGuid(leitor.GetOrdinal("IdRecDesejado")), data, horario);

                        bool estaPendente = leitor.GetBoolean(leitor.GetOrdinal("EstaPendente"));

                        bool?foiAceita = leitor["FoiAceita"] as bool?;
                        if (foiAceita.HasValue)
                        {
                            foiAceita = foiAceita.Value;
                        }
                        else
                        {
                            foiAceita = null;
                        }

                        bool foiVisualizada = leitor.GetBoolean(leitor.GetOrdinal("FoiVisualizada"));

                        troca = new Troca(trocaId, alocAtual, alocDesejada, foiAceita, estaPendente, foiVisualizada, horario, data);
                        aux.Add(troca);
                    }
                }


                return(aux);
            }
            catch (SqlException ex)
            {
                throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex);
            }
        }
Example #10
0
 public void Deletar(Alocacao entidade)
 {
     if (entidade.Id != 0)
     {
         _repositorio.Deletar(entidade);
     }
     else
     {
         throw new IdentifierUndefinedException();
     }
 }
        public AlocacaoController(IAlocacaoRepos alocacaoRepos,
                                  IHttpContextAccessor httpContextAccessor,
                                  IHostingEnvironment hostingEnvironment)
        {
            _alocacaoRepos       = alocacaoRepos;
            _httpContextAccessor = httpContextAccessor;
            _hostingEnvironment  = hostingEnvironment;
            msgValidacao         = new List <string>();

            alocacao = new Alocacao();
        }
Example #12
0
 private Dictionary <string, object> Take(Alocacao sala)
 {
     return(new Dictionary <string, object>
     {
         { "Id", sala.Id },
         { "DataReserva", sala.DataReserva },
         { "HoraReservaInicio", sala.HoraReservaInicio },
         { "HoraReservaFim", sala.HoraReservaFim },
         { "Funcionario_Id", sala.Funcionario.Id },
         { "Sala_Id", sala.Sala.Id }
     });
 }
Example #13
0
        public Alocacao Salvar(Alocacao alocacao)
        {
            if (alocacao == null)
            {
                throw new NullReferenceException($"Alocação inválida!");
            }

            var state = alocacao.HasId ? EntityState.Modified : EntityState.Added;

            _context.Entry(alocacao).State = state;
            _context.SaveChanges();
            return(alocacao);
        }
Example #14
0
        public void AlocacaoServico_BuscaPorId_DeveFuncionar()
        {
            Alocacao alocacao = ObjectMother.ObterAlocacaoValida();

            mockRepositorio.Setup(m => m.BuscarPorId(alocacao.Id)).Returns(alocacao);

            Alocacao result = alocacaoServico.BuscarPorId(alocacao.Id);

            result.Should().NotBeNull();
            result.Id.Should().Be(1);

            mockRepositorio.Verify(m => m.BuscarPorId(alocacao.Id));
        }
        public IActionResult Deletar([FromBody] Alocacao alocacao)
        {
            try
            {
                _alocacaoRepos.Remove(alocacao);

                return(Json(_alocacaoRepos.ListAll()));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.ToString()));
            }
        }
Example #16
0
 public Alocacao Atualizar(Alocacao entidade)
 {
     entidade.Validar();
     if (entidade.Id != 0)
     {
         entidade = _repositorio.Atualizar(entidade);
     }
     else
     {
         throw new IdentifierUndefinedException();
     }
     return(entidade);
 }
Example #17
0
        public void AlocacaoServico_AtualizarRepositorio_DeveFuncionar()
        {
            Alocacao alocacao = ObjectMother.ObterAlocacaoValida();

            alocacao.Id = 1;
            alocacao.Funcionario.NomeFuncionario = "Luiz 123";

            mockRepositorio.Setup(m => m.Atualizar(alocacao)).Returns(alocacao);

            Alocacao result = alocacaoServico.Atualizar(alocacao);

            result.Funcionario.NomeFuncionario.Should().Be(alocacao.Funcionario.NomeFuncionario);
        }
Example #18
0
        internal List <Alocacao> GetAlocacoes(DateTime data)
        {
            List <Alocacao> lista = new List <Alocacao>();

            DbCommand cmd = baseDados.GetStoredProcCommand("AlocacaoSelectTodos");

            baseDados.AddInParameter(cmd, "@Data", DbType.DateTime, data);

            AulasDAO    aulaDAO   = new AulasDAO();
            EventoDAO   eventoDAO = new EventoDAO();
            RecursosDAO recDAO    = new RecursosDAO();

            using (IDataReader leitor = baseDados.ExecuteReader(cmd))
            {
                Alocacao aloc;

                while (leitor.Read())
                {
                    Aula    au     = null;
                    Recurso rec    = null;
                    Evento  evento = null;

                    DateTime?dataR = leitor["Data"] as DateTime?;
                    if (dataR.HasValue)
                    {
                        data = dataR.Value;
                    }

                    rec = recDAO.GetRecurso(leitor.GetGuid(leitor.GetOrdinal("RecursoId")));

                    Guid?aulaId = leitor["AulaId"] as Guid?;
                    if (aulaId.HasValue)
                    {
                        au = aulaDAO.GetAula(leitor.GetGuid(leitor.GetOrdinal("AulaId")));
                    }

                    Guid?eventoId = leitor["EventoId"] as Guid?;
                    if (eventoId.HasValue)
                    {
                        evento = eventoDAO.GetEvento(leitor.GetGuid(leitor.GetOrdinal("EventoId")));
                    }

                    string hora = (string)leitor["Horario"];

                    aloc = new Alocacao(rec, data, hora, au, evento);

                    lista.Add(aloc);
                }
            }
            return(lista);
        }
Example #19
0
        private void AlocarFuncionarioEmVaga(Funcionario funcionario, Vaga vaga)
        {
            var alocacao = new Alocacao()
            {
                applicationUserId = _userManager.GetUserId(User),
                vaga          = vaga,
                funcionario   = funcionario,
                data_operacao = DateTime.Now,
            };

            _funcionarioRepository.AlocarEmVaga(vaga, funcionario);
            alocacao.operacao = OperacoesAlocacao.ALOCAR;
            _alocacaoRepository.Salvar(alocacao);
        }
Example #20
0
        public List <Alocacao> GetAlocacoesSemData(Calendario cal, Secretario secretario)
        {
            List <Alocacao> lista = new List <Alocacao>();

            DbCommand cmd = baseDados.GetStoredProcCommand("AlocacaoSelectByProfessorSemData");

            baseDados.AddInParameter(cmd, "@ProfessorId", DbType.Guid, secretario.Id);
            baseDados.AddInParameter(cmd, "@DataInicio", DbType.DateTime, cal.InicioG1);
            baseDados.AddInParameter(cmd, "@DataFim", DbType.DateTime, cal.FimG2);

            AulasDAO    aulaDAO   = new AulasDAO();
            EventoDAO   eventoDAO = new EventoDAO();
            RecursosDAO recDAO    = new RecursosDAO();

            using (IDataReader leitor = baseDados.ExecuteReader(cmd))
            {
                Alocacao aloc;

                while (leitor.Read())
                {
                    Aula     au       = null;
                    Recurso  rec      = null;
                    Evento   evento   = null;
                    DateTime dateTime = new DateTime();

                    rec = recDAO.GetRecurso(leitor.GetGuid(leitor.GetOrdinal("RecursoId")));

                    Guid?aulaId = leitor["AulaId"] as Guid?;
                    if (aulaId.HasValue)
                    {
                        au = aulaDAO.GetAula(leitor.GetGuid(leitor.GetOrdinal("AulaId")));
                    }

                    Guid?eventoId = leitor["EventoId"] as Guid?;
                    if (eventoId.HasValue)
                    {
                        evento = eventoDAO.GetEvento(leitor.GetGuid(leitor.GetOrdinal("EventoId")));
                    }

                    string hora = (string)leitor["Hora"];

                    dateTime = (DateTime)leitor["Data"];

                    aloc = new Alocacao(rec, dateTime, hora, au, evento);

                    lista.Add(aloc);
                }
            }
            return(lista);
        }
Example #21
0
        public void AlocacaoServico_CriarRepositorio_DeveFuncionar()
        {
            Alocacao alocacao = ObjectMother.ObterAlocacaoValida();

            alocacao.Id = 0;
            mockRepositorio.Setup(m => m.Adicionar(alocacao)).Returns(new Alocacao {
                Id = 1
            });

            Alocacao result = alocacaoServico.Adicionar(alocacao);

            result.Id.Should().BeGreaterThan(0);
            mockRepositorio.Verify(m => m.Adicionar(alocacao));
        }
Example #22
0
 public void DeletaAlocacao(Alocacao alocacao)
 {
     if (user.IsAdmin())
     {
         try
         {
             dao.DeletaAlocacao(alocacao);
         }
         catch (DataAccessException ex)
         {
             throw ex;
         }
     }
     else throw new SecurityException("Acesso Negado.");
 }
Example #23
0
        public void AlocacaoServico_BuscaTodos_DeveFuncionar()
        {
            IList <Alocacao> ListaAlocacao = new List <Alocacao>();
            Alocacao         alocacao      = ObjectMother.ObterAlocacaoValida();

            ListaAlocacao.Add(alocacao);
            mockRepositorio.Setup(m => m.BuscarTodos()).Returns(ListaAlocacao);

            IList <Alocacao> Result = alocacaoServico.BuscarTodos();

            Result.First().Id.Should().Be(1);
            Result.Count().Should().Be(1);

            mockRepositorio.Verify(m => m.BuscarTodos());
        }
Example #24
0
        private Alocacao Make(IDataReader reader)
        {
            Alocacao sala = new Alocacao();

            sala.Funcionario = new Funcionario();
            sala.Sala        = new Sala();

            sala.Id                = Convert.ToInt32(reader["Id"]);
            sala.DataReserva       = Convert.ToDateTime(reader["DataReserva"]);
            sala.HoraReservaInicio = Convert.ToDateTime(reader["HoraReservaInicio"]);
            sala.HoraReservaFim    = Convert.ToDateTime(reader["HoraReservaFim"]);
            sala.Funcionario.Id    = Convert.ToInt32(reader["Funcionario_Id"]);
            sala.Sala.Id           = Convert.ToInt32(reader["Sala_Id"]);
            return(sala);
        }
Example #25
0
        public void RetornaNumeroTotalDeDiasUteis()
        {
            var projeto   = new Projetos();
            var empregado = new Empregados();
            var alocacao  = new Alocacao(empregado, projeto);

            alocacao.InicioDaAlocacao = new DateTime(2019, 02, 11);
            alocacao.FimDaAlocacao    = new DateTime(2019, 02, 17);

            var valorEsperado = 5;

            ;           var valorAtual = alocacao.CountadorDiasUteis();

            Assert.Equal(valorEsperado, valorAtual);
        }
Example #26
0
        public ActionResult Novo(string id)
        {
            try
            {
                Guid         UKAdmissao    = Guid.Parse(id);
                Admissao     oAdmissao     = AdmissaoBusiness.Consulta.FirstOrDefault(p => string.IsNullOrEmpty(p.UsuarioExclusao) && p.UniqueKey.Equals(UKAdmissao));
                Empresa      oEmpresa      = EmpresaBusiness.Consulta.FirstOrDefault(p => string.IsNullOrEmpty(p.UsuarioExclusao) && p.UniqueKey.Equals(oAdmissao.UKEmpresa));
                Departamento oDepartamento = DepartamentoBusiness.Consulta.FirstOrDefault(p => string.IsNullOrEmpty(p.UsuarioExclusao) && p.UKEmpresa.Equals(oEmpresa.UniqueKey));

                Alocacao obj = new Alocacao();
                obj.UKAdmissao = oAdmissao.UniqueKey;

                ViewBag.Contratos = (from contForn in ContratoFornecedorBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao) && p.UKFornecedor.Equals(oAdmissao.UKEmpresa)).ToList()
                                     join cont in ContratoBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao)).ToList() on contForn.UKContrato equals cont.UniqueKey
                                     select cont).ToList();

                ViewBag.Cargos = CargoBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao)).ToList();

                ViewBag.Estabelecimentos = (from e in EstabelecimentoBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao)).ToList()
                                            join re in REL_EstabelecimentoDepartamentoBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao)).ToList()
                                            on e.UniqueKey equals re.UKEstabelecimento
                                            where re.UKDepartamento.Equals(oDepartamento.UniqueKey)
                                            select e).ToList();



                ViewBag.Equipes = EquipeBusiness.Consulta.Where(p => string.IsNullOrEmpty(p.UsuarioExclusao) && p.UKEmpresa.Equals(oAdmissao.UKEmpresa)).ToList();

                return(PartialView("_Novo", obj));
            }
            catch (Exception ex)
            {
                if (ex.GetBaseException() == null)
                {
                    return(Json(new { resultado = new RetornoJSON()
                                      {
                                          Erro = ex.Message
                                      } }));
                }
                else
                {
                    return(Json(new { resultado = new RetornoJSON()
                                      {
                                          Erro = ex.GetBaseException().Message
                                      } }));
                }
            }
        }
Example #27
0
        public void DeletaAlocacao(Alocacao alocacao)
        {
            if (user.IsAdmin())
            {
                try
                {
                    dao.DeletaAlocacao(alocacao);
                }
                catch (DataAccessException ex)
                {
                    throw ex;
                }
            }
            else throw new SecurityException("Acesso Negado.");

        }
Example #28
0
        public void UpdateAlocacao(Alocacao alocacao)
        {
            // a, b, c, d, e, x, f, g, h, i, j, k, l, m, n, p

            //string aux = alocacao.Horario;
            //for (char c = aux[0]; c <= aux[aux.Length-1]; c++)
            foreach (char c in alocacao.Horario)
            {
                if ((alocacao.Aula != null) && (alocacao.Evento != null))
                {
                    throw new Exception("Dados Inválidos!");
                }
                if (c != 'o')
                {
                    try
                    {
                        DbCommand cmd = baseDados.GetStoredProcCommand("AlocacaoUpdate");

                        baseDados.AddInParameter(cmd, "@RecursoId", DbType.Guid, alocacao.Recurso.Id);
                        baseDados.AddInParameter(cmd, "@Data", DbType.DateTime, alocacao.Data);
                        baseDados.AddInParameter(cmd, "@Horario", DbType.String, c);
                        if (alocacao.Aula != null)
                        {
                            baseDados.AddInParameter(cmd, "@AulaId", DbType.Guid, alocacao.Aula.Id);
                            baseDados.AddInParameter(cmd, "@EventoId", DbType.Guid, DBNull.Value);
                        }
                        else if (alocacao.Evento != null)
                        {
                            baseDados.AddInParameter(cmd, "@AulaId", DbType.Guid, DBNull.Value);
                            baseDados.AddInParameter(cmd, "@EventoId", DbType.Guid, alocacao.Evento.EventoId);
                        }
                        else
                        {
                            baseDados.AddInParameter(cmd, "@AulaId", DbType.Guid, DBNull.Value);
                            baseDados.AddInParameter(cmd, "@EventoId", DbType.Guid, DBNull.Value);
                        }

                        baseDados.ExecuteNonQuery(cmd);
                    }

                    catch (SqlException ex)
                    {
                        throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex);
                    }
                }
            }
        }
Example #29
0
        public void DeletaAlocacao(Alocacao alocacao)
        {
            try
            {
                DbCommand cmd = baseDados.GetStoredProcCommand("AlocacaoDeleta");

                baseDados.AddInParameter(cmd, "@RecursoId", DbType.Guid, alocacao.Recurso.Id);
                baseDados.AddInParameter(cmd, "@Data", DbType.DateTime, alocacao.Data);
                baseDados.AddInParameter(cmd, "@Horario", DbType.String, alocacao.Horario);

                baseDados.ExecuteNonQuery(cmd);
            }
            catch (SqlException ex)
            {
                throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex);
            }
        }
Example #30
0
        public Alocacao ReaLocarSala(Sala sala, DateTime data, Funcionario funcionario, Sala NovaSala, DateTime NovaData)
        {
            Alocacao         alocacao      = new Alocacao();
            IList <Alocacao> ListaAlocacao = _repositorio.BuscarTodos();

            foreach (var item in ListaAlocacao)
            {
                if (item.Sala == sala && item.DataAlocacao == data && item.Funcionario == funcionario)
                {
                    item.Sala         = NovaSala;
                    item.DataAlocacao = data;
                    alocacao          = item;
                }
            }
            alocacao = _repositorio.Atualizar(alocacao);
            return(alocacao);
        }
Example #31
0
 public void Service_SalaReservada_Deveria_Adicionar_Locacao_Corretamente()
 {
     _salaReservada = ObjectMother.GetSalaReservada();
     _repository
     .Setup(f => f.Adicionar(It.IsAny <Alocacao>()))
     .Returns(new Alocacao
     {
         Id                = 1,
         DataReserva       = _salaReservada.DataReserva,
         HoraReservaInicio = _salaReservada.HoraReservaInicio,
         HoraReservaFim    = _salaReservada.HoraReservaFim,
         Funcionario       = _salaReservada.Funcionario,
         Sala              = _salaReservada.Sala
     });
     _service.Adicionar(_salaReservada);
     _repository.Verify(f => f.Adicionar(_salaReservada));
 }
Example #32
0
        public void DeveCalcularOCustoDaAlocacao()
        {
            var projeto          = new Projetos();
            var empregado        = new Empregados();
            var alocacao         = new Alocacao(empregado, projeto);
            var periodoDoProjeto = alocacao.CountadorDiasUteis();

            alocacao.InicioDaAlocacao         = new DateTime(2019, 02, 11);
            alocacao.FimDaAlocacao            = new DateTime(2019, 02, 17);
            alocacao.CargaHoraria             = 8;
            empregado.CustoDeHorasTrabalhadas = 100;

            var valorEsperado = 4000;
            var valorAtual    = alocacao.CalcularCustoDeAlocacaoDoEmpregado();

            Assert.Equal(valorEsperado, valorAtual);
        }
Example #33
0
        public Troca GetJaPropos(Guid idAtual)
        {
            try
            {
                DbCommand cmd = baseDados.GetStoredProcCommand("TrocasSelectJaPropos");

                baseDados.AddInParameter(cmd, "@Id", DbType.Guid, idAtual);

                Troca       aux     = null;
                AlocacaoDAO alocDAO = new AlocacaoDAO();

                using (IDataReader leitor = baseDados.ExecuteReader(cmd))
                {
                    while (leitor.Read())
                    {
                        DateTime data         = leitor.GetDateTime(leitor.GetOrdinal("Data"));
                        string   horario      = leitor.GetString(leitor.GetOrdinal("Horario"));
                        Guid     id           = leitor.GetGuid(leitor.GetOrdinal("Id"));
                        Alocacao alocAtual    = alocDAO.GetAlocacao(leitor.GetGuid(leitor.GetOrdinal("IdRecAtual")), data, horario);
                        Alocacao alocDesejada = alocDAO.GetAlocacao(leitor.GetGuid(leitor.GetOrdinal("IdRecDesejado")), data, horario);
                        bool     estaPendente = leitor.GetBoolean(leitor.GetOrdinal("EstaPendente"));


                        bool?foiAceita = leitor["FoiAceita"] as bool?;
                        if (foiAceita.HasValue)
                        {
                            foiAceita = foiAceita.Value;
                        }
                        else
                        {
                            foiAceita = null;
                        }

                        bool foiVisualizada = leitor.GetBoolean(leitor.GetOrdinal("FoiVisualizada"));
                        aux = new Troca(id, alocAtual, alocDesejada, foiAceita, estaPendente, foiVisualizada, horario, data);
                    }
                }


                return(aux);
            }
            catch (SqlException ex)
            {
                throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex);
            }
        }
Example #34
0
        public void DeletaAlocacao(Alocacao alocacao)
        {
            try
            {
                DbCommand cmd = baseDados.GetStoredProcCommand("AlocacaoDeleta");

                baseDados.AddInParameter(cmd, "@RecursoId", DbType.Guid, alocacao.Recurso.Id);
                baseDados.AddInParameter(cmd, "@Data", DbType.DateTime, alocacao.Data);
                baseDados.AddInParameter(cmd, "@Horario", DbType.String, alocacao.Horario);

                baseDados.ExecuteNonQuery(cmd);
            }
            catch (SqlException ex)
            {
                throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex);
            }
        }
Example #35
0
        public void RetorneONumeroTotalDeDiasUteis()
        {
            var projeto     = new Projetos();
            var funcionario = new Funcionarios();
            var alocacao    = new Alocacao(funcionario, projeto);

            alocacao.DataDeInicio  = new DateTime(2019, 02, 11);
            alocacao.DataDeTermino = new DateTime(2019, 02, 18);



            var valorEsperado = 6;
            var valorAtual    = alocacao.ContadorDeDiasUteis();


            Assert.Equal(valorEsperado, valorAtual);
        }
    protected void Button1_Click(object sender, EventArgs e)
    {
        AulaBO aulabo = new AulaBO();
        Guid g = new Guid("63529733-08BB-466C-BDE5-1F822BDC358C");
        //Aula aula = aulabo.GetAulaById(new Guid("63529733-08BB-466C-BDE5-1F822BDC358C"));
        Aula aula = null;
        Evento evento = null;
        AlocacaoDAO aloc = new AlocacaoDAO();
        RecursosBO rec = new RecursosBO();
        List<Alocacao> lista = new List<Alocacao>();
        DateTime data = new DateTime(2007, 08, 01);
        string hora = "np";
        Alocacao a = new Alocacao(rec.GetRecursoById(g), data, hora, aula, evento);

        aloc.UpdateAlocacao(a);

        //lista = aloc.GetRecursosAlocados(data, hora);
    }
Example #37
0
    protected void btnLiberar_Click(object sender, EventArgs e)
    {
        if (LBoxAlocados.SelectedValue != "")
        {
            DateTime data = Convert.ToDateTime(Session["DataAula"]);
            string horario = (string)Session["Horario"];
            Guid recId = new Guid(LBoxAlocados.SelectedValue);

            Recurso rec = controleRecursos.GetRecursoById(recId);
            Alocacao aloc = new Alocacao(rec, data, horario, null, null);
            alocBO.UpdateAlocacao(aloc);

            LBoxAlocados.Items.RemoveAt(LBoxAlocados.SelectedIndex);

            lblStatus.Text = "Recurso liberado!";
        }
        else
        {
            lblStatus.Text = "Selecione um recurso para liberá-lo!";
        }
    }
Example #38
0
        public List<Alocacao> GetRecursosAlocados(DateTime data, string hora)
        {
            try
            {
                List<Alocacao> aux = new List<Alocacao>();

                DbCommand cmd = baseDados.GetStoredProcCommand("AlocacaoSelectAlocados");
                baseDados.AddInParameter(cmd, "@Data", DbType.DateTime, data);
                baseDados.AddInParameter(cmd, "@Hora", DbType.String, hora);

                RecursosDAO recursoDao = new RecursosDAO();
                EventoDAO eventoDao = new EventoDAO();
                using (IDataReader leitor = baseDados.ExecuteReader(cmd))
                {
                    while (leitor.Read())
                    {

                        Recurso recurso = recursoDao.GetRecurso(leitor.GetGuid(leitor.GetOrdinal("RecursoId")));

                        AulasDAO aulaDao = new AulasDAO();
                        Aula aula;
                        Evento evento;

                        Guid? aulaId = leitor["AulaId"] as Guid?;
                        if (aulaId.HasValue)
                            aula = aulaDao.GetAula(aulaId.Value);
                        else aula = null;

                        Guid? eventoID = leitor["EventoId"] as Guid?;
                        if (eventoID.HasValue)
                            evento = eventoDao.GetEvento(eventoID.Value);
                        else evento = null;

                        Alocacao aloc = new Alocacao(recurso,leitor.GetDateTime(leitor.GetOrdinal("Data")),hora, aula, evento);

                        aux.Add(aloc);
                    }
                }

                return aux;
            }
            catch (SqlException ex)
            {
                throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex);
            }
        }
Example #39
0
        public List<Alocacao> GetAlocacoesByData(DateTime data, Calendario cal)
        {
            List<Alocacao> lista = new List<Alocacao>();

            DbCommand cmd = baseDados.GetStoredProcCommand("AlocacaoSelectByData");
            baseDados.AddInParameter(cmd, "@Data", DbType.DateTime, data);

            AulasDAO aulaDAO = new AulasDAO();
            EventoDAO eventoDAO = new EventoDAO();
            RecursosDAO recDAO = new RecursosDAO();

            using (IDataReader leitor = baseDados.ExecuteReader(cmd))
            {
                Alocacao aloc;

                while (leitor.Read())
                {
                    Aula au = null;
                    Recurso rec = null;
                    Evento evento = null;

                    rec = recDAO.GetRecurso(leitor.GetGuid(leitor.GetOrdinal("RecursoId")));

                    Guid? aulaId = leitor["AulaId"] as Guid?;
                    if (aulaId.HasValue)
                        au = aulaDAO.GetAula(leitor.GetGuid(leitor.GetOrdinal("AulaId")));

                    Guid? eventoId = leitor["EventoId"] as Guid?;
                    if (eventoId.HasValue)
                        evento = eventoDAO.GetEvento(leitor.GetGuid(leitor.GetOrdinal("EventoId")));

                    string hora = (string)leitor["Hora"];

                    aloc = new Alocacao(rec, data,hora,au,evento);

                    lista.Add(aloc);
                }
            }
            return lista;
        }
Example #40
0
        public void UpdateAlocacao(Alocacao alocacao)
        {
            // a, b, c, d, e, x, f, g, h, i, j, k, l, m, n, p

            //string aux = alocacao.Horario;
            //for (char c = aux[0]; c <= aux[aux.Length-1]; c++)
            foreach(char c in alocacao.Horario)
            {
                if ((alocacao.Aula != null) && (alocacao.Evento != null))
                    throw new Exception("Dados Inválidos!");
                if (c != 'o')
                {
                    try
                    {
                        DbCommand cmd = baseDados.GetStoredProcCommand("AlocacaoUpdate");

                        baseDados.AddInParameter(cmd, "@RecursoId", DbType.Guid, alocacao.Recurso.Id);
                        baseDados.AddInParameter(cmd, "@Data", DbType.DateTime, alocacao.Data);
                        baseDados.AddInParameter(cmd, "@Horario", DbType.String, c);
                        if (alocacao.Aula != null)
                        {
                            baseDados.AddInParameter(cmd, "@AulaId", DbType.Guid, alocacao.Aula.Id);
                            baseDados.AddInParameter(cmd, "@EventoId", DbType.Guid, DBNull.Value);
                        }
                        else if (alocacao.Evento != null)
                        {
                            baseDados.AddInParameter(cmd, "@AulaId", DbType.Guid, DBNull.Value);
                            baseDados.AddInParameter(cmd, "@EventoId", DbType.Guid, alocacao.Evento.EventoId);
                        }
                        else
                        {
                            baseDados.AddInParameter(cmd, "@AulaId", DbType.Guid, DBNull.Value);
                            baseDados.AddInParameter(cmd, "@EventoId", DbType.Guid, DBNull.Value);
                        }

                        baseDados.ExecuteNonQuery(cmd);

                    }

                    catch (SqlException ex)
                    {
                        throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex);
                    }
                }
            }
        }
Example #41
0
        public List<Alocacao> GetAlocacoesSemData(Calendario cal, Secretario secretario)
        {
            List<Alocacao> lista = new List<Alocacao>();

            DbCommand cmd = baseDados.GetStoredProcCommand("AlocacaoSelectByProfessorSemData");
            baseDados.AddInParameter(cmd, "@ProfessorId", DbType.Guid, secretario.Id);
            baseDados.AddInParameter(cmd, "@DataInicio", DbType.DateTime, cal.InicioG1);
            baseDados.AddInParameter(cmd, "@DataFim", DbType.DateTime, cal.FimG2);

            AulasDAO aulaDAO = new AulasDAO();
            EventoDAO eventoDAO = new EventoDAO();
            RecursosDAO recDAO = new RecursosDAO();

            using (IDataReader leitor = baseDados.ExecuteReader(cmd))
            {

                Alocacao aloc;

                while (leitor.Read())
                {
                    Aula au = null;
                    Recurso rec = null;
                    Evento evento = null;
                    DateTime dateTime = new DateTime();

                    rec = recDAO.GetRecurso(leitor.GetGuid(leitor.GetOrdinal("RecursoId")));

                    Guid? aulaId = leitor["AulaId"] as Guid?;
                    if (aulaId.HasValue)
                        au = aulaDAO.GetAula(leitor.GetGuid(leitor.GetOrdinal("AulaId")));

                    Guid? eventoId = leitor["EventoId"] as Guid?;
                    if (eventoId.HasValue)
                        evento = eventoDAO.GetEvento(leitor.GetGuid(leitor.GetOrdinal("EventoId")));

                    string hora = (string)leitor["Hora"];

                    dateTime = (DateTime)leitor["Data"];

                    aloc = new Alocacao(rec, dateTime, hora, au, evento);

                    lista.Add(aloc);
                }
            }
            return lista;
        }
Example #42
0
    protected void dgRecusrosAlocados_ItemCommand(object sender, DataGridCommandEventArgs e)
    {
        if (e.CommandName == "Troca")
        {
            Label lblResponsavel = (Label)e.Item.FindControl("lblResponsavel");
            Label lblRecursoId = (Label)e.Item.FindControl("lblRecursoId");
            Label lblTurmaEventoId = (Label)e.Item.FindControl("lblTurmaEventoId");

            DateTime data = Convert.ToDateTime(Session["Data"]);
            string horario = (string)Session["Horario"];
            Guid eventoId = new Guid(Session["EventoId"].ToString());

            Troca temTrocaRequerente = trocaBo.GetJaPropos(eventoId);
            Troca temTrocaSolicidado = trocaBo.GetJaPropos(new Guid(lblTurmaEventoId.Text));

            if (temTrocaRequerente == null && temTrocaSolicidado == null)
            {

                Evento evento = null;
                try
                {
                    evento = eventoBO.GetEventoById(eventoId);
                }
                catch (Exception)
                {
                    Response.Redirect("~/Default/Erro.aspx?Erro=Código do evento inválido!");
                }

                //monta alocacao desejada
                Guid recIdDesejado = new Guid(lblRecursoId.Text);
                Alocacao alocDesejada = alocBO.GetAlocacao(recIdDesejado, data, horario);

                //monta alocacao atual
                if (rblRecursos.SelectedValue != "")
                {
                    Recurso recAtual = controleRecursos.GetRecursoById(new Guid(rblRecursos.SelectedValue));
                    Alocacao alocAtual = new Alocacao(recAtual, data, horario, null, evento);

                    Troca troca = new Troca(Guid.NewGuid(), alocAtual, alocDesejada, null, true, false,horario,data);

                    try
                    {
                        trocaBo.InsereTroca(troca);
                    }
                    catch (Exception)
                    {
                        Response.Redirect("~/Default/Erro.aspx?Erro=Proposta não pode ser cadastrada!");
                    }

                    lblStatus.Text = "A proposta de troca de recurso foi enviada para " + lblResponsavel.Text + ".";

                }
                else
                {
                    lblStatus.Text = "Selecione um recurso próprio para propor uma troca!";
                }
            }
            else
            {
                lblStatus.Text = "Existe uma troca em andamento.";
            }

        }
    }
Example #43
0
        public Alocacao GetAlocacao(Guid recursoid, DateTime data, string horario)
        {
            try
            {
                DbCommand cmd = baseDados.GetStoredProcCommand("AlocacaoSelect");
                baseDados.AddInParameter(cmd, "@RecursoId", DbType.Guid, recursoid);
                baseDados.AddInParameter(cmd, "@Data", DbType.DateTime, data);
                baseDados.AddInParameter(cmd, "@Horario", DbType.String, horario);

                Alocacao aux = null;

                using (IDataReader leitor = baseDados.ExecuteReader(cmd))
                {
                    leitor.Read();

                    RecursosDAO recursoDao = new RecursosDAO();
                    Recurso recurso = recursoDao.GetRecurso(recursoid);

                    AulasDAO aulaDao = new AulasDAO();
                    Aula aula;

                    Guid? aulaId = leitor["AulaId"] as Guid?;
                    if (aulaId.HasValue)
                        aula = aulaDao.GetAula(aulaId.Value);
                    else aula = null;

                    EventoDAO eventoDao = new EventoDAO();
                    Evento evento;

                    Guid? eventoID = leitor["EventoId"] as Guid?;
                    if (eventoID.HasValue)
                        evento = eventoDao.GetEvento(eventoID.Value);
                    else evento = null;

                    aux = new Alocacao(recurso, leitor.GetDateTime(leitor.GetOrdinal("Data")), leitor.GetString(leitor.GetOrdinal("Horario")), aula, evento);
                }
                return aux;
            }
            catch (SqlException ex)
            {
                throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex);
            }
        }
Example #44
0
 public void UpdateAlocacao(Alocacao alocacao)
 {
     try
     {
         dao.UpdateAlocacao(alocacao);
         //MembershipUser user = Membership.GetUser();
         //LogEntry log = new LogEntry();
         //log.Message = "Recurso: " + alocacao.Recurso.Categoria + " - " + alocacao.Recurso.Descricao + "; Id: "+ alocacao.Recurso.Id +"; Data: " + alocacao.Data.ToShortDateString() + "; Horário: " + alocacao.Horario + "; Usuário: " + user.UserName;
         //log.TimeStamp = DateTime.Now;
         //log.Severity = TraceEventType.Information;
         //log.Title = "Update Alocação";
         //log.MachineName = Dns.GetHostName();
         //Logger.Write(log);
     }
     catch (DataAccessException ex)
     {
         throw ex;
     }
 }
Example #45
0
        public void InsereAlocacao(Alocacao alocacao)
        {
            if ((alocacao.Aula != null) && (alocacao.Evento != null))
                throw new Exception("Dados Inválidos!");
            try
            {
                DbCommand cmd = baseDados.GetStoredProcCommand("AlocacaoInsere");

                baseDados.AddInParameter(cmd, "@RecursoId", DbType.Guid, alocacao.Recurso.Id);
                baseDados.AddInParameter(cmd, "@Data", DbType.DateTime, alocacao.Data);
                baseDados.AddInParameter(cmd, "@Horario", DbType.String, alocacao.Horario);
                if (alocacao.Aula != null)
                {
                    baseDados.AddInParameter(cmd, "@AulaId", DbType.Guid, alocacao.Aula.Id);
                    baseDados.AddInParameter(cmd, "@EventoId", DbType.Guid, DBNull.Value);
                }
                else if (alocacao.Evento != null)
                {
                    baseDados.AddInParameter(cmd, "@AulaId", DbType.Guid, DBNull.Value);
                    baseDados.AddInParameter(cmd, "@EventoId", DbType.Guid, alocacao.Evento.EventoId);
                }
                else
                {
                    baseDados.AddInParameter(cmd, "@AulaId", DbType.Guid, DBNull.Value);
                    baseDados.AddInParameter(cmd, "@EventoId", DbType.Guid, DBNull.Value);
                }
                baseDados.ExecuteNonQuery(cmd);
            }
            catch (SqlException ex)
            {
                throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex);
            }
        }
    // Deleta o(s) recurso(s) selecionado(s)
    protected void butDeletar_Click(object sender, ImageClickEventArgs e)
    {
        ImageButton butDel = (ImageButton)sender;

        // O checkbox list está dentro da célula da tabela...
        HtmlTableCell cell = (HtmlTableCell) butDel.Parent;
        CheckBoxList cbList = (CheckBoxList)cell.FindControl("cbRecursos");

        // Para chegar no DataGridItem correspondente... bleargh!
        DataGridItem grid = (DataGridItem)cell.Parent.Parent.Parent.Parent.Parent;

        DropDownList ddlDisponiveis = (DropDownList)grid.FindControl("ddlDisponiveis");
        string dataString = ((Label)grid.FindControl("lblData")).Text;
        DateTime data = Convert.ToDateTime(dataString);
        string horario = ((Label)grid.FindControl("lblHora")).Text;
        string aulaString = ((Label)grid.FindControl("lblAulaId")).Text;

        Guid aulaId = new Guid(aulaString);
        Aula aula = aulaBo.GetAulaById(aulaId);

        // Varre o checkbox list do fim para o início,
        // e remove todos os recursos selecionados (da tela e do BD)
        List<Recurso> listaRecLib = new List<Recurso>();
        for(int r=cbList.Items.Count-1; r>=0; r--)
        {
            ListItem recurso = cbList.Items[r];
            if (recurso.Selected)
            {
                Guid recId = new Guid(recurso.Value);
                Recurso rec = recursosBO.GetRecursoById(recId);
                Alocacao aloc = new Alocacao(rec, data, horario, null, null);
                alocBO.UpdateAlocacao(aloc);
                cbList.Items.RemoveAt(r);
                // TODO: melhorar isso - só envia email se forem recursos com a palavra "lab" em algum lugar
                if(rec.Categoria.Descricao.ToLower().Contains("lab"))
                    listaRecLib.Add(rec);
            }
        }

        //ImageButton butDel = (ImageButton)grid.FindControl("butDeletar");
        ImageButton butTransf = (ImageButton)grid.FindControl("butTransferir");
        ImageButton butTrocar = (ImageButton)grid.FindControl("butTrocar");

        // Se nenhum restou, esconde botões
        if (cbList.Items.Count == 0)
        {
            butDel.Visible = false;
            butTransf.Visible = false;
            butTrocar.Visible = false;
        }

        // Recria o dropdownlist de recursos disponíveis
        //ddlDisponiveis.Items.Clear();
        List<Recurso> livres = recursosBO.GetRecursosDisponiveis(data, horario);
        livres.Sort();
        Recurso dummy = new Recurso();
        dummy.Descricao = "Selecionar...";
        dummy.Id = dummyGuid;
        livres.Insert(0, dummy);

        ddlDisponiveis.DataValueField = "Id";
        ddlDisponiveis.DataTextField = "Descricao";
        ddlDisponiveis.DataSource = livres;
        ddlDisponiveis.DataBind();

        AtualizaTodaGrade();
        if(listaRecLib.Count > 0)
            EnviarEmailLiberacao("*****@*****.**", listaRecLib, data, horario);
    }
Example #47
0
        public List<Troca> GetTrocasEventosByAutor(Guid autorid, Calendario cal)
        {
            try
            {
                DbCommand cmd = baseDados.GetStoredProcCommand("TrocasEventosSelectByAutor");

                baseDados.AddInParameter(cmd, "@AutorId", DbType.Guid, autorid);
                baseDados.AddInParameter(cmd, "@CalendarioId", DbType.Guid, cal.Id);

                List<Troca> aux = new List<Troca>();
                Troca troca = null;
                AulasDAO aulaDAO = new AulasDAO();
                AlocacaoDAO alocDAO = new AlocacaoDAO();
                RecursosDAO recDAO = new RecursosDAO();
                EventoDAO eventoDAO = new EventoDAO();

                using (IDataReader leitor = baseDados.ExecuteReader(cmd))
                {

                    while (leitor.Read())
                    {

                        Guid trocaId = leitor.GetGuid(leitor.GetOrdinal("Id"));

                        Recurso recAtual = recDAO.GetRecurso(leitor.GetGuid(leitor.GetOrdinal("IdRecAtual")));
                        Recurso recDesejado = recDAO.GetRecurso(leitor.GetGuid(leitor.GetOrdinal("IdRecDesejado")));

                        string horario = leitor.GetString(leitor.GetOrdinal("Horario"));
                        DateTime data = leitor.GetDateTime(leitor.GetOrdinal("Data"));

                        Aula aulaAtual = null;
                        Aula aulaDesejada = null;
                        Evento eventoAtual = null;
                        Evento eventoDesejado = null;

                        Guid? IdAulaAtual = leitor["IdAulaAtual"] as Guid?;
                        if (IdAulaAtual.HasValue)
                            aulaAtual = aulaDAO.GetAula(leitor.GetGuid(leitor.GetOrdinal("IdAulaAtual")));

                        Guid? IdAulaDesejada = leitor["IdAulaDesejada"] as Guid?;
                        if (IdAulaDesejada.HasValue)
                            aulaDesejada = aulaDAO.GetAula(leitor.GetGuid(leitor.GetOrdinal("IdAulaDesejada")));

                        Guid? IdEventoAtual = leitor["IdEventoAtual"] as Guid?;
                        if (IdEventoAtual.HasValue)
                            eventoAtual = eventoDAO.GetEvento(IdEventoAtual);

                        Guid? IdEventoDesejado = leitor["IdEventoDesejado"] as Guid?;
                        if (IdEventoDesejado.HasValue)
                            eventoDesejado = eventoDAO.GetEvento(IdEventoDesejado);

                        Alocacao alocAtual = new Alocacao(recAtual, data, horario, aulaAtual, eventoAtual);
                        Alocacao alocDesejada = new Alocacao(recDesejado, data, horario, aulaDesejada, eventoDesejado);

                        bool estaPendente = leitor.GetBoolean(leitor.GetOrdinal("EstaPendente"));

                        bool? foiAceita = leitor["FoiAceita"] as bool?;
                        if (foiAceita.HasValue)
                            foiAceita = foiAceita.Value;
                        else foiAceita = null;

                        bool foiVisualizada = leitor.GetBoolean(leitor.GetOrdinal("FoiVisualizada"));

                        troca = new Troca(trocaId, alocAtual, alocDesejada, foiAceita, estaPendente, foiVisualizada, horario, data);

                        aux.Add(troca);
                    }
                }

                return aux;
            }
            catch (SqlException ex)
            {
                throw new DataAccessException(ErroMessages.GetErrorMessage(ex.Number), ex);
            }
        }