public HttpResponseMessage GetAllFilial(String Token) { try { ListaFilial listaFilial = new ListaFilial(); listaFilial = FilialDAL.ListaFilial("0"); return(Request.CreateResponse(HttpStatusCode.OK, listaFilial)); } catch (HttpResponseException ex) { return(ex.Response); } catch (InvalidCastException ex) { return(Request.CreateErrorResponse(HttpStatusCode.BadGateway, ex.Message)); } }
public void ObterNomes(List<Solicitacao> solicitacoes) { using (var filDAL = new FilialDAL()) { // OBTER NOME DO CLIENTE, TIPO DA SOLICITAÇÃO E NOME DA FILIAL, usando o CodFilial Task t1 = Task.Factory.StartNew(() => { var filiais = filDAL.ListarTodos(); foreach (var s in solicitacoes) { var sol = s; // parece redundante, mas é feito assim mesmo por causa do lazy loading do LINQ s.Filial = filiais .Where(f => f.codfil == sol.CodFilial) // <-- Lazy Loading .Select(f => f.nomfil).FirstOrDefault(); } }); Task t3 = Task.Factory.StartNew(() => { var tipoSolDAL = new TipoSolicitacaoClienteDAL(); var queryTipos = tipoSolDAL.ListarTodos(); foreach (var s in solicitacoes) { var sol = s; s.Tipo = queryTipos .Where(t => t.CodTipoSolicitacaoCliente == sol.CodTipoSolicitacao && t.SitTipoSolicitacaoCliente == "A") .Select(t => t.DesTipoSolicitacaoCliente).FirstOrDefault(); } }); Task t4 = Task.Factory.StartNew(() => { var situacaoDAL = new SituacaoSolicitacaoDAL(); var querySituacao = situacaoDAL.ListarTodos(); foreach (var s in solicitacoes) { var sol = s; //var ultimoHistorico = sol.Historicos.OrderBy(h => h.CodHistoricoSolicitacao).Last(); var query = from sit in querySituacao where sit.CodSituacaoSolicitacao == sol.CodSituacaoAtual select new { DesSituacao = sit.DesSituacao, CodSituacaoSolicitacao = sit.CodSituacaoSolicitacao }; sol.Situacao = query.FirstOrDefault() == null? "" :query.FirstOrDefault().DesSituacao; //sol.CodSituacaoAtual = query.FirstOrDefault() == null ? 0 : query.FirstOrDefault().CodSituacaoSolicitacao; } }); Task t5 = Task.Factory.StartNew(() => { var usuarios = new UsuarioSapiensBLL().ListarTodos(); foreach (var s in solicitacoes) { var sol = s; var query = from u in usuarios where u.Codusu == sol.CodUsuarioSolicitacao select u.Nomusu; s.Usuario = query.FirstOrDefault(); } }); Task t6 = Task.Factory.StartNew(() => { foreach (var s in solicitacoes) { s.Cliente = s.DadosPrincipaisSolicitacao.Count != 0 ? s.DadosPrincipaisSolicitacao.Last().NomeFantasia:""; } }); Task t7 = Task.Factory.StartNew(() => { var queryPerfis = new PerfilUsuarioBLL().ListarTodos(); foreach (var s in solicitacoes) { var sol = s; if(sol.PareceresSolicitacao != null) { if (sol.PareceresSolicitacao.Count > 0) { var codPerfilUsuario = sol.PareceresSolicitacao.OrderBy(p => p.CodParecer).Last().Codperusu; s.Perfil = queryPerfis .Where(p => p.CodPerfilUsuario == codPerfilUsuario) .Select(p => p.DesPerfil).FirstOrDefault(); } } } }); Task.WaitAll(t1, t3, t4, t5, t6); } }