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 void Execute(IContainer container) { container.Register(c => new PostGetController(c.Resolve<IMediator>()) {ActionInvoker = c.Resolve<IActionInvoker>()}); var mediator = container.Resolve<ISubscribeHandlers>(); mediator.Subscribe<PostRequest, PostGetViewModel>(message => { var posts = container.Resolve<IReadOnlyList<PostViewModel>>(); RefreshContent(container, posts); var result = new PostGetViewModel(); result = new FilteredPostVault(posts).Handle(message, result); return result; }); mediator.Subscribe<PostIndexRequest, PostIndexViewModel>(message => new FilteredPostVault(container.Resolve<IReadOnlyList<PostViewModel>>()).Handle(message)); }
public void Execute(IContainer container) { container.Register(c => new PostGetController(c.Resolve <IMediator>()) { ActionInvoker = c.Resolve <IActionInvoker>() }); var mediator = container.Resolve <ISubscribeHandlers>(); mediator.Subscribe <PostRequest, PostGetViewModel>(message => { var posts = container.Resolve <IReadOnlyList <PostViewModel> >(); RefreshContent(container, posts); var result = new PostGetViewModel(); result = new FilteredPostVault(posts).Handle(message, result); return(result); }); mediator.Subscribe <PostIndexRequest, PostIndexViewModel>(message => new FilteredPostVault(container.Resolve <IReadOnlyList <PostViewModel> >()).Handle(message)); }