Esempio n. 1
0
        public ArticleModule() : base("Article") {

            Func<ArticlecModel, ArticlecModel> Save = x => {
                if (x.Id == Guid.Empty) {
                    x.Id = Guid.NewGuid();
                    x.CreateDate = DateTime.Now;
                    x.UpdateDate = DateTime.Now;
                    return db.Insert(x);
                }
                else {
                    x = db.Get<ArticlecModel>(y => y.Id == x.Id);
                    x.UpdateDate = DateTime.Now;
                    return db.Update(x);
                }
            };

            Func<ArticlecModel, dynamic> ConvertViewModel = x => {
                var result = new {
                    a = x,
                    html = CommonMarkConverter.Convert(x.Content)
                };
                return result;
            };

            Get["/{title}"] = param => {
                string title = param.title;
                var model = db.Get<ArticlecModel>(x => x.Title == title);
                return View["Article/Index", ConvertViewModel(model)];
            };

            Get["/Insert"] = param => {
                return View["Article/Insert", new ArticlecModel()];
            };

            Get["/{title}/Edit"] = param => {
                string title = param.title;
                var model = db.Get<ArticlecModel>(x => x.Title == title);
                return View["Article/Insert", model];
            };

            Get["/{title}/Delete"] = param => {
                string title = param.title;
                var model = db.Get<ArticlecModel>(x => x.Title == title);
                db.Delete<ArticlecModel>(model.Id);
                return View["Home/Index"];
            };

            Post["/Insert"] = param => {
                var model = this.Bind<ArticlecModel>();
                model = Save(model);
                if (model == null) {
                    throw new Exception("程序炸了");
                }
                return View["Article/Index", ConvertViewModel(model)];
            };
        }
Esempio n. 2
0
        public ArticleModel() {

            Get["Article/{title}"] = param => {
                string title = param.title;
                var q = db.GetContent<ArticlecModel>();
                var article = q.FindOne(y => y.Title == title);
                var model = new {
                    a = article,
                    html = CommonMarkConverter.Convert(article.Content)
                };
                return View["Article/Index", model];
            };
        }