public async Task <IEnumerable <ArticleForListContract> > Handle(QueryArticlesContract contract) { Validate(contract); var articlesInStorage = await _articleService.GetArticles(contract.FiledToSort, contract.Desc, contract.Offset, contract.Limit); var articles = articlesInStorage?.Select(a => new ArticleForListContract { Id = a.Id, Title = a.Title, Timestamp = a.Timestamp, }); return(articles); }
private void Validate(QueryArticlesContract contract) { string normalizedFiledToSort = contract.FiledToSort?.ToLowerInvariant(); if (normalizedFiledToSort != "id" && normalizedFiledToSort != "title" && normalizedFiledToSort != "body" && normalizedFiledToSort != "timestamp") { throw new ArgumentException("Unknown FieldToSort"); } if (contract.Limit < 0) { throw new ArgumentException("Limit must be greater than or equal to zero"); } if (contract.Offset < 0) { throw new ArgumentException("Offset must be greater than or equal to zero"); } }
public async Task <IEnumerable <ArticleForListContract> > GetAsync([FromBody] QueryArticlesContract contract) { return(await _getListArticlesRequestHandler.Handle(contract)); }