Ejemplo n.º 1
0
        public List <Agendamento> PesquisarAgendamento2(string filtro, DateTime filtroinicio, DateTime filtrofim)
        {
            List <Agendamento> agendamentos;

            using (SqlConnection conn = new SqlConnection(Conexao.ConsultarConexao()))
            {
                string script =

                    "select  " +
                    "agendamento.id_agendamento Id," +
                    "id_usuario IdUsuario," +
                    "Equipamento.id_equipamento IdEquipamento," +
                    "dt_agendamento DataAgendamento," +
                    "dthr_dia Dia," +
                    "dt_alteracao  DataAlteracao," +
                    "dthr_retirada DataHoraRetirada," +
                    "dthr_devolucao  DataHoraDevolucao," +
                    "ds_devolucao StatusDevolucao," +
                    "id_usuario_alteracao IdUsuarioAlteracao," +
                    "count(nmr_patrimonio)  Quantidade " +
                    "from Equipamento " +
                    "inner join " +
                    "Patrimonio on Equipamento.id_equipamento = Patrimonio.id_equipamento " +
                    "inner join " +
                    "PatrimonioAgendado on Patrimonio.id_patrimonio = PatrimonioAgendado.id_patrimonio " +
                    "left join " +
                    "Agendamento on PatrimonioAgendado.id_agendamento = Agendamento.id_agendamento " +
                    "left join " +
                    "StatusDevolucao on  Agendamento.id_status_devolucao = StatusDevolucao.id_status_devolucao " +
                    "where " +
                    "(nm_equipamento like '%' + @FILTRO + '%' " +
                    "OR  nmr_patrimonio like '%' + @FILTRO + '%') " +
                    "AND dthr_dia BETWEEN  @FILTROINICIO   AND   @FILTROFIM  " +
                    "group by " +
                    "nm_equipamento," +
                    "ds_equipamento," +
                    "Equipamento.fl_status," +
                    "dthr_dia," +
                    "dthr_devolucao," +
                    "ds_devolucao," +
                    "dthr_retirada," +
                    "id_usuario," +
                    "dt_agendamento," +
                    "Equipamento.id_equipamento," +
                    "id_Usuario_alteracao," +
                    "dt_alteracao," +
                    "agendamento.id_agendamento ";

                agendamentos = conn.Query <Agendamento>(script, new { @FILTRO = filtro, @FILTROINICIO = filtroinicio.Date, @FILTROFIM = filtrofim.Date.AddDays(1).AddSeconds(-1) }).ToList();

                foreach (var agendamento in agendamentos)
                {
                    EquipamentoRepositorio repoEquip = new EquipamentoRepositorio();
                    agendamento.Equipamento = repoEquip.ConsultarPorId(agendamento.IdEquipamento);

                    UsuarioRepositorio repoUsuario = new UsuarioRepositorio();
                    agendamento.Usuario          = repoUsuario.ConsultarPorID(agendamento.IdUsuario);
                    agendamento.UsuarioAlteracao = repoUsuario.ConsultarPorID(agendamento.IdUsuarioAlteracao);
                }
            }

            return(agendamentos);
        }