public async Task <List <Coleta> > GetListColetaComOrcamento(int idCliente) { // Seleciona as coletas que possuem orçamentos e que estão com o Status = 01 #region Variáveis e controllers List <Coleta> _listaFiltrada; List <Orcamento> _listaOrca; Orcamento orcamento = new Orcamento(); OrcamentoController orcamentoController = new OrcamentoController(); #endregion try { var coleta = await GetList(); // Retorna todos os orçamentos relacionados ao cliente _listaOrca = await orcamentoController.GetListOrcamento_Cliente(idCliente); // Retorna os IDs das coletas var retornaId = _listaOrca.Select(i => i.IdColeta).Distinct().ToList(); _listaFiltrada = coleta.Where(l => retornaId.Contains(l.IdColeta)).ToList(); return(_listaFiltrada); } catch (Exception ex) { throw ex; } }
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; } }
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; } }