public HomeModule(IViewProjectionFactory viewFactory, ISpamShieldService spamShield, ICommandInvokerFactory commandInvokerFactory) : base(viewFactory) { _viewFactory = viewFactory; _commandInvokerFactory = commandInvokerFactory; Get["/"] = p => ReturnHomeAction(new RecentBlogPostsBindingModel() { Page = 1, Take = 10 }); Get["/page/{page:int}"] = p => ReturnHomeAction(new RecentBlogPostsBindingModel() { Page = p.page, Take = 10 }); Get["/tag/{Tag}"] = p => ReturnArticlesTaggedBy(new TaggedBlogPostsBindingModel() { Tag = p.tag }); Get[@"/(?<year>\d{4})/(?<month>0[1-9]|1[0-2])/(?<titleslug>[a-zA-Z0-9_-]+)"] = p => ReturnArticle(new BlogPostDetailsBindingModel { Permalink = p.titleslug }, spamShield);//TODO:需要增加对日期有效性的验证 Get[@"/(?<year>\d{4})/(?<month>0[1-9]|1[0-2])"] = p => { var input = new IntervalBlogPostsBindingModel { FromDate = new DateTime(p.year, p.month, 1) }; input.ToDate = input.FromDate.AddMonths(1); return ReturnArticles(input); }; Post["/spam/hash/{tick}"] = p => spamShield.GenerateHash(p.tick); Post["/comment/(?<titleslug>[a-zA-Z0-9_-]+)"] = p => ReturnAddComment(p); }
public dynamic ReturnArticle(BlogPostDetailsBindingModel input, ISpamShieldService spamShield) { var model = _viewFactory.Get<BlogPostDetailsBindingModel, BlogPostDetailsViewModel>(input); if (model == null) return HttpStatusCode.NotFound; ViewBag.Title = model.BlogPost.Title; ViewBag.Tick = spamShield.CreateTick(input.Permalink); return View["details", model]; }
public dynamic ReturnArticle(BlogPostDetailsBindingModel input, ISpamShieldService spamShield) { var model = _viewFactory.Get <BlogPostDetailsBindingModel, BlogPostDetailsViewModel>(input); if (model == null) { return(HttpStatusCode.NotFound); } ViewBag.Title = model.BlogPost.Title; ViewBag.Tick = spamShield.CreateTick(input.Permalink); return(View["details", model]); }
public HomeModule(IViewProjectionFactory viewFactory, ISpamShieldService spamShield, ICommandInvokerFactory commandInvokerFactory) : base(viewFactory) { _viewFactory = viewFactory; _commandInvokerFactory = commandInvokerFactory; Get["/"] = p => ReturnHomeAction(new RecentBlogPostsBindingModel() { Page = 1, Take = 10 }); Get["/page/{page:int}"] = p => ReturnHomeAction(new RecentBlogPostsBindingModel() { Page = p.page, Take = 10 }); Get["/tag/{Tag}"] = p => ReturnArticlesTaggedBy(new TaggedBlogPostsBindingModel() { Tag = p.tag }); Get[@"/(?<year>\d{4})/(?<month>0[1-9]|1[0-2])/(?<titleslug>[a-zA-Z0-9_-]+)"] = p => ReturnArticle(new BlogPostDetailsBindingModel { Permalink = p.titleslug }, spamShield); //TODO:需要增加对日期有效性的验证 Get[@"/(?<year>\d{4})/(?<month>0[1-9]|1[0-2])"] = p => { var input = new IntervalBlogPostsBindingModel { FromDate = new DateTime(p.year, p.month, 1) }; input.ToDate = input.FromDate.AddMonths(1); return(ReturnArticles(input)); }; Post["/spam/hash/{tick}"] = p => spamShield.GenerateHash(p.tick); Post["/comment/(?<titleslug>[a-zA-Z0-9_-]+)"] = p => ReturnAddComment(p); }
public NewCommentCommandInvoker(DB.AutoBox db, ISpamShieldService spamShield) { _db = db; _spamShield = spamShield; }
public NewCommentCommandInvoker(MongoCollections collections, ISpamShieldService spamShield) { _collections = collections; _spamShield = spamShield; }
public NewCommentCommandInvoker(Config dbConfig, ISpamShieldService spamShield) { _dbConfig = dbConfig; _spamShield = spamShield; }