Esempio n. 1
0
        public async Task <List <Coleta> > GetList_Historico(int idMotorista)
        {
            OrcamentoController orcaControl = new OrcamentoController();

            try
            {
                // Captura todos orçamentos
                var orcamentos = await orcaControl.GetListOrcamento();

                // Captura orçamentos realizados pelo motorista
                orcamentos = orcamentos.Where(i => i.IdMotorista == idMotorista).ToList();

                // Captura ID das coletas da consulta acima
                var idColetas = orcamentos.Select(i => i.IdColeta).ToList();

                // Todas as coletas
                var coletas = await GetList();

                // Filtra as coletas de acordo com o List<int> idColetas
                coletas = coletas.Where(l => idColetas.Contains(l.IdColeta)).ToList();

                /*
                 * if(idEscolha == 0)           // todas as coletas
                 * {
                 *  return coletas;
                 * }
                 *
                 * else if(idEscolha == 1)     // coletas em andamento
                 * {
                 *  coletas = coletas.Where(l => l.IdStatus == 8).ToList();
                 *
                 *  return coletas;
                 * }
                 *
                 * else if(idEscolha == 2)     // coletas realizadas
                 * {
                 *  coletas = coletas.Where(l => l.IdStatus == 10).ToList();
                 *
                 *  return coletas;
                 * }
                 * else if(idEscolha == 3)     // coletas canceladas
                 * {
                 *  coletas = coletas.Where(l => l.IdStatus == 6).ToList();
                 *
                 *  return coletas;
                 * } */

                return(coletas);
            }
            catch (Exception ex)
            { throw ex; }
        }
Esempio n. 2
0
        public async Task <List <Coleta> > GetListColeta_Geral(int idMotorista, int idStatus)
        {
            // Retorna todas as coletas

            #region Variáveis e controllers

            List <Coleta>          _lista = new List <Coleta>();
            List <Coleta>          _listaFiltrada;
            List <int>             lista             = new List <int>();
            List <int>             teste             = new List <int>();
            List <int>             orca              = new List <int>();
            List <ColetaVisualiza> _listaVisualizada = new List <ColetaVisualiza>();
            List <Orcamento>       _listaOrcamento   = new List <Orcamento>();

            ColetaVisualizaController visualizaController = new ColetaVisualizaController();
            OrcamentoController       orcamentoController = new OrcamentoController();

            #endregion

            try
            {
                var coleta = await GetList();

                #region Verifica as coletas visualizadas pelo motorista

                var listaVisualizada = await visualizaController.GetListVisualiza(idMotorista); // Captura as coletas visualizadas

                // Captura os IDs das coletas visualizadas pelo motorista
                teste = listaVisualizada.Select(i => i.IdColeta).ToList();

                #endregion

                #region Verifica as coletas que já foram orçadas

                var orcadas = await orcamentoController.GetListOrcamento();          // todos os orçamentos

                orcadas = orcadas.Where(l => l.IdMotorista == idMotorista).ToList(); // todas as coletas orçadas pelo motorista

                var idOrcadas = orcadas.Select(l => l.IdColeta).ToList();            // IDs das coletas orçadas

                #endregion

                if (idStatus == 0)                                      // Coletas Não Visualizadas
                {
                    #region Verifica as coletas visualizadas pelo motorista

                    // Filtra as coletas não visualizadas e com status 2 (Disponíveis para envio de orçamento)
                    _listaFiltrada = coleta.Where(l => !teste.Contains(l.IdColeta))
                                     .Where(l => l.IdStatus == 2)
                                     .ToList();
                    #endregion

                    return(_listaFiltrada);
                }
                else if (idStatus == 1)                                  // Coletas Visualizadas
                {
                    #region Verifica as coletas visualizadas pelo motorista e que ainda não enviou orçamento

                    // Filtra as coletas não visualizadas e com status 2 (Disponíveis para envio de orçamento)
                    _listaFiltrada = coleta.Where(l => teste.Contains(l.IdColeta))       // coletas visualizdas
                                     .Where(l => l.IdStatus == 2)                        // que ainda recebm orçamento
                                     .Where(l => !idOrcadas.Contains(l.IdColeta))        // que não tenha recebido orçamento ainda
                                     .ToList();
                    #endregion

                    return(_listaFiltrada);
                }
                else if (idStatus == 2)
                {
                    #region Busca os orçamentos

                    idStatus = 13;       // IdStatus: 13 - Aguardando aprovação

                    // Captura os orçamentos enviados pelo Motorista
                    var listaOrca = await orcamentoController.GetListOrcamento(idStatus, idMotorista);

                    orca = listaOrca.Select(i => i.IdColeta).ToList();

                    #endregion

                    // Seleciona os IDs das coletas que tem orçamento e posteriormente a coleta
                    _lista = coleta.Where(l => orca.Contains(l.IdColeta)).ToList();

                    return(_lista);
                }

                return(_lista);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }