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)));
        }