public async Task <TokenRequestResponse> GetConsumerToken( )
        {
            return(await SafeCallApi(async delegate
            {
                return await Task.Run(async( ) =>
                {
                    BaseQueryParameters queryParams = new BaseQueryParameters(RequestHandler);
                    TokenRequestResponse response = await _api.GetConsumerToken(queryParams);

                    if (!response.IsRequestSuccessful)
                    {
                        response.DataError = Enums.DataError.Unauthorized;
                    }

                    return response;
                });
            }));
        }
        public async Task <BasePaginatedResponse <UserDto> > Paginate(BaseQueryParameters parameters)
        {
            var userList = await _userRepository.Paginate(
                offset : (parameters.Page - 1) *parameters.ItemsPerPage,
                itemsCount : parameters.ItemsPerPage,
                search : parameters.Search
                );

            var userDtoList = _mapper.Map <IEnumerable <User>, IEnumerable <UserDto> >(userList);
            var rowsCount   = await _userRepository.GetFilteredDataCountAsync(parameters.Search);

            var pagesCount = (int)Math.Ceiling((decimal)rowsCount / parameters.ItemsPerPage);

            return(new BasePaginatedResponse <UserDto>
            {
                EntityList = userDtoList,
                PagesCount = pagesCount
            });
        }
        public async Task <BasePaginatedResponse <ProjectDto> > GetProjects(BaseQueryParameters parameters)
        {
            BasePaginatedResponse <ProjectDto> projectsPaginated = null;

            if (parameters.Search == "")
            {
                projectsPaginated = await _redisService.GetItemAsync <BasePaginatedResponse <ProjectDto> >($"projects.{parameters.ItemsPerPage}.{parameters.Page}");
            }

            if (projectsPaginated == null)
            {
                var projectList = await _projectRepository.PaginateFiltered(
                    offset : (parameters.Page - 1) *parameters.ItemsPerPage,
                    itemsCount : parameters.ItemsPerPage,
                    searchPhrase : parameters.Search
                    );

                var projectDtoList = _mapper.Map <IEnumerable <Project>, IEnumerable <ProjectDto> >(projectList);
                var rowsCount      = await _projectRepository.GetFilteredDataCountAsync(parameters.Search);

                var pagesCount = (int)Math.Ceiling((decimal)rowsCount / parameters.ItemsPerPage);

                projectsPaginated = new BasePaginatedResponse <ProjectDto>
                {
                    EntityList = projectDtoList,
                    PagesCount = pagesCount
                };

                if (parameters.Search == "")
                {
                    await _redisService.SetItemAsync($"projects.{parameters.ItemsPerPage}.{parameters.Page}", projectsPaginated, 60);
                }
            }

            return(projectsPaginated);
        }
Esempio n. 4
0
        public async Task <IActionResult> Get([FromQuery] BaseQueryParameters queryParameters)
        {
            var user = await _userService.Paginate(queryParameters);

            return(Ok(user));
        }
        public async Task <IActionResult> Get([FromQuery] BaseQueryParameters parameters)
        {
            var returnValue = await _projectService.GetProjects(parameters);

            return(Ok(returnValue));
        }