Пример #1
0
        public async Task <ActionResult <RefreshToken[]> > GetRefreshTokensByUserIdAsync(int userId, int pageNumber = 1, int pageSize = Data.Constants.Paging.DefaultPageSize, string sortBy = "TokenId Desc")
        {
            EntityCollection <RefreshToken> dbRefreshTokens = null;

            try
            {
                dbRefreshTokens = await _repository.GetRefreshTokensByUserIdAsync(userId, pageNumber, pageSize, sortBy);
            }
            catch (ParseException ex)
            {
                return(BadRequest("Request format is invalid: " + ex.Message));
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }

            if (dbRefreshTokens == null)
            {
                return(NotFound());
            }

            Data.ModelObjectCollection <Data.Models.RefreshToken> RefreshTokens = new ModelObjectCollection <Data.Models.RefreshToken>
            {
                TotalCount     = dbRefreshTokens.TotalCount,
                PageNumber     = dbRefreshTokens.PageNumber,
                PageSize       = dbRefreshTokens.PageSize,
                TotalPages     = dbRefreshTokens.TotalPages,
                SortBy         = dbRefreshTokens.SortBy,
                NextPageNumber = dbRefreshTokens.NextPageNumber,
                PrevPageNumber = dbRefreshTokens.PrevPageNumber,
                NextPageUrl    = "",
                PrevPageUrl    = "",
                Data           = _mapper.Map <Data.Models.RefreshToken []>(dbRefreshTokens.Data)
            };

            RefreshTokens.NextPageUrl = (RefreshTokens.PageNumber == RefreshTokens.TotalPages) ? "" : ("api/RefreshTokens?pageNumber" + RefreshTokens.NextPageNumber.ToString())
                                        + "&pageSize=" + RefreshTokens.PageSize.ToString()
                                        + "&sortBy=" + RefreshTokens.SortBy;
            RefreshTokens.PrevPageUrl = (RefreshTokens.PageNumber == 1) ? "" : ("api/RefreshTokens?pageNumber" + RefreshTokens.PrevPageNumber.ToString())
                                        + "&pageSize=" + RefreshTokens.PageSize.ToString()
                                        + "&sortBy=" + RefreshTokens.SortBy;

            return(Ok(RefreshTokens));
        }