public async Task <LastAlbumsResponse> Get([FromUri] LastAlbumsRequest request) { AddNewRelicCustomParameters(request); var lastAlbumsResponse = new LastAlbumsResponse { Albums = new List <Album>(), Info = new LastAlbumsResponseInfo { Page = request.Page, Source = request.Source } }; try { ValidateRequest(request); var albums = await _lastAlbumService.GetFeedItemsAlbumsAsync(request.Source, request.Page); lastAlbumsResponse.Albums = albums; lastAlbumsResponse.Info.Count = albums.Count; lastAlbumsResponse.ResponseStatusCode = HttpStatusCode.OK; return(lastAlbumsResponse); } catch (ServiceApiException saex) { LogError(saex); lastAlbumsResponse.ResponseStatusCode = saex.StatusCode; return(lastAlbumsResponse); } catch (Exception ex) { LogError(ex); lastAlbumsResponse.ResponseStatusCode = HttpStatusCode.InternalServerError; return(lastAlbumsResponse); } }
public async Task <IList <Album> > GetFeedItemsAlbumsAsync(FeedItemSource source, int page) { var cacheKey = GetCacheKey(string.Format("GetAlbums:source={0}&page={1}", source, page)); var cacheTimeout = _cacheConfiguration.Timeout; return (await CacheService.GetAsync(cacheKey, cacheTimeout, false, () => _lastFeedItemService.GetFeedItemsAlbumsAsync(source, page))); }