Пример #1
0
        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);
        }
Пример #2
0
        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));
            }
        }
Пример #3
0
        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));
        }
Пример #4
0
        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));
        }
Пример #5
0
        public async Task <ListaPaginadaPerfil> ObterListaPaginada(FiltroPerfil filtroPerfil)
        {
            var listaPaginadaPerfil = await _perfilRepository.ObterListaPaginada(filtroPerfil);

            return(listaPaginadaPerfil);
        }