public FiltroRanking GetFiltroRankingSimulado(int idSimulado) { try { using (MiniProfiler.Current.Step("Obter modal simulado online")) { var filtroRanking = new FiltroRanking(); var especialidades = new Especialidades(); var estados = new Estados(); var filiais = new Filiais(); var ranking = _rankingSimuladoRepository.GetRankingParcial(idSimulado); foreach (var item in ranking) { especialidades.Add(new Especialidade { Descricao = item.txtEspecialidade }); var hasSigla = item.txtUnidade.Any(x => x.Equals('(')); estados.Add(new Estado { Sigla = hasSigla ? item.txtUnidade.Substring(item.txtUnidade.IndexOf('(')).Replace("(", "").Replace(")", "") : item.txtUnidade, ID = (int)item.intStateID }); filiais.Add(new Filial { Nome = item.txtUnidade == "MEDREADER" ? "MEDREADER" : item.txtUnidade, EstadoID = (int)item.intStateID }); } var estadoEAD = -1; filtroRanking.Especialidades.AddRange(especialidades.GroupBy(e => new { e.Descricao }).Select(g => g.First()).ToList()); filtroRanking.Estados.AddRange(estados.GroupBy(e => new { e.Sigla, e.ID }).Select(g => g.First()).ToList()); filtroRanking.Unidades.AddRange(filiais.Where(e => e.EstadoID != estadoEAD).GroupBy(e => new { e.Nome, e.ID, e.EstadoID }).Select(g => g.First()).ToList()); return(filtroRanking); //} } } catch { throw; } }