private async Task <PerfisViewModel> ParsePerfis(int?page, FiltroPerfil filter, string email, int start, int finish) { UsuarioADE usuario = await ObterUsuarioLogado(); PerfisViewModel model; if (!string.IsNullOrWhiteSpace(email)) { model = new PerfisViewModel() { Usuarios = await ObterUsuarios(page, email, usuario), Amigos = await _servicoListaAmigos.BuscarPorIdUsuario(usuario.Id), Paginas = Math.Abs(await _servicoUsuario.Count() / 50), PaginaAtual = page.Value, }; } else { model = new PerfisViewModel() { Usuarios = await ObterUsuarios(page, start, finish, filter, usuario), Amigos = await _servicoListaAmigos.BuscarPorIdUsuario(usuario.Id), Paginas = Math.Abs(await _servicoUsuario.Count() / 50), PaginaAtual = page.Value, }; } return(model); }
public async Task <IActionResult> ObterListaPaginada([FromBody] FiltroPerfil filtroPerfil) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var listaPaginadaPerfil = await _perfilService.ObterListaPaginada(filtroPerfil); var listaPaginadaPerfilViewModel = ListaPaginadaPerfilViewModel.FromDomainModel(listaPaginadaPerfil); return(Ok(listaPaginadaPerfilViewModel)); } catch (Exception ex) { return(BadRequest(ex)); } }
public async Task <IActionResult> Index(int?page = 1, FiltroPerfil filter = FiltroPerfil.Curso, string email = "") { PerfisViewModel model; try { int size = 50; int start = page.Value * size - size; int finish = page.Value * size; ViewData["filter"] = filter; model = await ParsePerfis(page, filter, email, start, finish); } catch (Exception ex) { await LogError(ex.Message, ex.Source, EnumTipoLog.ListaPerfis); return(RedirectToAction("Index", "Account")); } return(View(model)); }
private async Task <PaginatedList <UsuarioADE> > ObterUsuarios(int?pagenumber, int start, int finish, FiltroPerfil filter, UsuarioADE usuario) { List <UsuarioADE> lista; switch (filter) { case FiltroPerfil.Instituicao: lista = await _servicoUsuario.Filtrar(x => x.IdInstituicao == usuario.IdInstituicao); break; case FiltroPerfil.Curso: lista = await _servicoUsuario.Filtrar(x => x.IdCurso == usuario.IdCurso); break; case FiltroPerfil.Pontuacao: lista = await _servicoUsuario.TakeBetween(start, finish); break; default: lista = await _servicoUsuario.Filtrar(x => x.IdCurso == usuario.IdCurso); break; } ; return(PaginatedList <UsuarioADE> .Create(lista.AsQueryable(), pagenumber ?? 1, 100)); }
public async Task <ListaPaginadaPerfil> ObterListaPaginada(FiltroPerfil filtroPerfil) { var listaPaginadaPerfil = await _perfilRepository.ObterListaPaginada(filtroPerfil); return(listaPaginadaPerfil); }