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); } }
private void ValidateRequest(LastAlbumsRequest request) { if (request.Page < 1) { throw new ServiceApiException(HttpStatusCode.BadGateway, string.Format(ServiceApiException.InvalidValueErrorMessageFormat, "Page", request.Page)); } }
private void AddNewRelicCustomParameters(LastAlbumsRequest request) { _newRelicTransactionManager.AddCustomParameter("request.Source", request.Source); _newRelicTransactionManager.AddCustomParameter("request.Page", request.Page); }