public async Task <GenericResponse <ShapedDataWithLinks> > GetRefreshTokens(RefreshTokenResourceParameter resourceParameter, string mediaType) { try { if (!MediaTypeHeaderValue.TryParse(mediaType, out MediaTypeHeaderValue parsedMediaType)) { return(GenericResponseBuilder.NoSuccess <ShapedDataWithLinks>(null, "Wrong media type")); } var refreshTokens = await this.dataService.RefreshTokens.FindAllAsync(resourceParameter); if (refreshTokens.Count == 0) { return(GenericResponseBuilder.Success <ShapedDataWithLinks>(null)); } var paginationMetaData = new PaginationMetaData { TotalCount = refreshTokens.TotalCount, PageSize = refreshTokens.PageSize, CurrentPage = refreshTokens.CurrentPage, TotalPages = refreshTokens.TotalPages }; var links = CreateLinksForRefreshTokens(resourceParameter, refreshTokens.HasNext, refreshTokens.HasPrevious); var shapedRefreshTokens = this.mapper .Map <IEnumerable <RefreshTokenDto> >(refreshTokens) .ShapeData(resourceParameter.Fields); var includeLinks = parsedMediaType.SubTypeWithoutSuffix .EndsWith("hateoas", StringComparison.InvariantCultureIgnoreCase); var refreshTokensToReturnWithLinks = shapedRefreshTokens.Select(token => { var tokenAsDictionary = token as IDictionary <string, object>; if (includeLinks) { var userLinks = CreateLinksForRefreshToken((Guid)tokenAsDictionary["Id"], resourceParameter.Fields); tokenAsDictionary.Add("links", userLinks); } return(tokenAsDictionary); }); var refreshTokensToReturn = new ShapedDataWithLinks() { Value = refreshTokensToReturnWithLinks, Links = links, PaginationMetaData = paginationMetaData }; return(GenericResponseBuilder.Success <ShapedDataWithLinks>(refreshTokensToReturn)); } catch (Exception ex) { logger.LogError(string.Format("Error in BLL - GetRefreshTokens. {0}", ex.Message)); return(GenericResponseBuilder.NoSuccess <ShapedDataWithLinks>(null, ex.Message.ToString())); } }
public async Task <GenericResponse <ShapedDataWithLinks> > GetApplicationClients(ApplicationClientResourceParameter resourceParameter, string mediaType) { try { if (!MediaTypeHeaderValue.TryParse(mediaType, out MediaTypeHeaderValue parsedMediaType)) { return(GenericResponseBuilder.NoSuccess <ShapedDataWithLinks>(null, "Wrong media type")); } if (!propertyMappingService.ValidMappingExistsFor <ApplicationClientDto, ApplicationClient>(resourceParameter.OrderBy)) { return(GenericResponseBuilder.NoSuccess <ShapedDataWithLinks>(null, "Wrong OrderBy entered")); } if (!propertyCheckerService.TypeHasProperties <ApplicationClientDto>(resourceParameter.Fields, true)) { return(GenericResponseBuilder.NoSuccess <ShapedDataWithLinks>(null, "Wrong fields entered")); } var applicationClients = await this.dataService.ApplicationClients.FindAllAsync(resourceParameter); if (applicationClients.Count == 0) { return(GenericResponseBuilder.Success <ShapedDataWithLinks>(null)); } var paginationMetaData = new PaginationMetaData() { TotalCount = applicationClients.TotalCount, PageSize = applicationClients.PageSize, CurrentPage = applicationClients.CurrentPage, TotalPages = applicationClients.TotalPages }; var links = CreateLinksForApplicationClients(resourceParameter, applicationClients.HasNext, applicationClients.HasPrevious); var shapedClientsToReturn = this.mapper .Map <IEnumerable <ApplicationClientDto> >(applicationClients) .ShapeData(resourceParameter.Fields); var includeLinks = parsedMediaType.SubTypeWithoutSuffix .EndsWith("hateoas", StringComparison.InvariantCultureIgnoreCase); var shapedClientsToReturnWithLinks = shapedClientsToReturn.Select(client => { var userAsDictionary = client as IDictionary <string, object>; if (includeLinks) { var userLinks = CreateLinksForApplicationClient((Guid)userAsDictionary["Id"], resourceParameter.Fields); userAsDictionary.Add("links", userLinks); } return(userAsDictionary); }); var applicationClientsToReturn = new ShapedDataWithLinks() { Value = shapedClientsToReturnWithLinks, Links = links, PaginationMetaData = paginationMetaData }; return(GenericResponseBuilder.Success <ShapedDataWithLinks>(applicationClientsToReturn)); } catch (Exception ex) { logger.LogError(string.Format("Error in BLL - GetApplicationClients. {0}", ex.Message)); return(GenericResponseBuilder.NoSuccess <ShapedDataWithLinks>(null, ex.Message.ToString())); } }