public object Csv(PostRequest request) { var model = Execute(request); if (model == null) return null; var url = new UrlHelper(HttpContext.Request.RequestContext); return new { model.Post.Title, model.Post.PublishedAtCst, Url = url.RouteUrl("canonical-slug", new {slug = model.Post.Slug}, "http"), model.Post.Content }; }
public PostGetViewModel Handle(PostRequest message, PostGetViewModel result) { var post = ActivePosts.FirstOrDefault(); if (message.Slug != null) post = AllPosts.FirstOrDefault(x => x.Slug.ToLower() == message.Slug.ToLower()); if (post == null) return result; //Decision: don't throw, handle downstream as to what this means var previous = ActivePosts.OrderBy(x => x.PublishedAtCst).FirstOrDefault(x => x.PublishedAtCst > post.PublishedAtCst); var next = ActivePosts.FirstOrDefault(x => x.PublishedAtCst < post.PublishedAtCst); result.Post = post; result.Previous = previous; result.Next = next; return result; }
public PostGetViewModel Execute(PostRequest request) { var model = _mediator.Send<PostRequest, PostGetViewModel>(request); if (model.Post == null) return null; return model; }