Пример #1
0
        public async Task <List <Coleta> > GetListColetaMotorista(int idMotorista, int idStatus) // Retorna coletas com o id selecionado
        {
            #region Controlers e variáveis

            ColetaVisualizaController visualizaControl = new ColetaVisualizaController();

            HttpClient client = new HttpClient();

            List <Coleta> _listaFiltrada;

            List <ColetaVisualiza> _listaVisualiza;

            #endregion

            try
            {   // Seleciona todas as coletas
                var lista = await GetListColeta_Geral(idMotorista, idStatus);

                // Filtro 01 - Filtra as coletas pelo status 02 (disponível para envio de orçamentos)
                _listaFiltrada = lista.Where(i => i.IdStatus == 2).ToList();

                if (idStatus == 0)                               // Coletas disponíveis ainda não visualizadas
                {
                    #region Filtra coletas ainda não visualizadas

                    // Filtro 02 - Filtra as coletas relacionadas ao motorista
                    _listaVisualiza = await visualizaControl.GetListVisualiza(idMotorista);

                    // Filtro 03 - Filtra as coletas não visualizadas
                    #region Seleciona as coletas que não forem visualizadas

                    // Seleciona os IDs das coletas visualizadas
                    var listaVisualizaFiltrada = _listaVisualiza
                                                 .Select(i => new { Valor = i.IdColeta }).ToList();

                    // Transforma a lista anonima de status acima, em uma lista de inteiros (para a comparação)
                    // List<int> listStatus = new List<int>(listaVisualizaFiltrada);

                    // Filtro 04 - Filtra as coletas que foram visualizadas
                    // var _listaFiltra = _listaFiltrada.Where(i => !listStatus.Contains(i.IdColeta));

                    //var teste = _listaFiltra.Where(i => listStatus.Contains(i.IdColeta)).ToList();


                    return(_listaFiltrada);

                    #endregion

                    #endregion
                }

                return(_listaFiltrada);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #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;
            }
        }