public void ObterNomes(List<ConfiguracaoWorkflow> configs) { using (var grupoDAL = new GrupoSapiensDAL()) { var tiposDAL = new TipoSolicitacaoClienteDAL(); //var tiposDAL = new TipoSolicitacaoSapiensDAL(); // pegar os grupos e os tipos de solicitação. var grupos = grupoDAL.ListarTodos(); var tipos = tiposDAL.ListarTodos(); foreach (var c in configs) { c.StrUsuGrupo = grupos.Where(g => g.UsuId == c.UsuGrupo).Select(x => x.UsuNome).FirstOrDefault(); c.StrUsuTipsol = tipos.Where(t => t.CodTipoSolicitacaoCliente == c.UsuTipsol).Select(x => x.DesTipoSolicitacaoCliente).FirstOrDefault(); c.StrUsuProxgrupo = grupos.Where(g => g.UsuId == c.UsuProxgrupo).Select(x => x.UsuNome).FirstOrDefault(); c.StrUsuAlcada = String.Format("{0:C}", c.UsuAlcada); c.StrUsuAlcadamax = String.Format("{0:C}", c.UsuAlcadamax); } } }
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); } }