public Response <Post> GetPost(Guid id) { try { var spec = new GetPostSpec(id); var post = _postRepository.GetFirstOrDefault(spec); return(new SuccessResponse <Post>(post)); } catch (Exception e) { Logger.LogError(e, $"Error {nameof(GetPost)}(id: {id})"); return(new FailedResponse <Post>((int)ResponseFailureCode.GeneralException)); } }
public Response <Post> GetPost(int year, int month, int day, string slug) { try { var date = new DateTime(year, month, day); var spec = new GetPostSpec(date, slug); var post = _postRepository.GetFirstOrDefault(spec); return(new SuccessResponse <Post>(post)); } catch (Exception ex) { Logger.LogError(ex, $"Error {nameof(GetPost)}(year: {year}, month: {month}, day: {day}, slug: {slug})"); return(new FailedResponse <Post>((int)ResponseFailureCode.GeneralException, ex.Message, ex)); } }
public Task <IReadOnlyList <Post> > GetPagedPostsAsync(int pageSize, int pageIndex, Guid?categoryId = null) { if (pageSize < 1) { throw new ArgumentOutOfRangeException(nameof(pageSize), $"{nameof(pageSize)} can not be less than 1, current value: {pageSize}."); } if (pageIndex < 1) { throw new ArgumentOutOfRangeException(nameof(pageIndex), $"{nameof(pageIndex)} can not be less than 1, current value: {pageIndex}."); } var spec = new GetPostSpec(pageSize, pageIndex, categoryId); return(_postRepository.GetAsync(spec)); }