public void OnActionExecuting(ActionExecutingContext context) { string remoteIP = context.HttpContext.Connection.RemoteIpAddress.ToString(); if (!_actionCooldownService.IsCoolingCompletion(_actionCooldownType, remoteIP)) { var options = _optionsCache.Get().Result; string cdtime = ""; switch (_actionCooldownType) { case ActionCooldownType.CommentsPost: cdtime = options.postcommentscd; break; } var controller = context.Controller as BaseController; var Message_result = new ViewResult(); Message_result.ViewName = "Themes/" + options.theme + "/_Message"; Message_result.ViewData = new ViewDataDictionary(_modelMetadataProvider, context.ModelState); Message_result.ViewData.Add("Message.Title", "你的操作过于频繁"); Message_result.ViewData.Add("Message.Content", $"请等待:{cdtime}秒后再尝试此操作。"); context.Result = Message_result; } }
//通过内容标识ID和评论父级ID获取评论 public async Task <IViewComponentResult> InvokeAsync( int cid, int parentcoid = 0) { var options = await optionsCache.Get(); var data = await cms.GetListAsync(cid, parentcoid); return(View(options.theme + "/View", data)); }
public void SetCooldown(ActionCooldownType actionCooldownType, string ip) { long cooldowntime = 0; var options = _optionsCache.Get().Result; switch (actionCooldownType) { case ActionCooldownType.CommentsPost: cooldowntime = long.Parse(options.postcommentscd); break; } _cache.Set(actionCooldownType + ip, "0", cooldowntime); }
public override void OnException(ExceptionContext context) { if (context.Exception is MessageException) { var options = _optionsCache.Get().Result; MessageException me = context.Exception as MessageException; var result = new ViewResult { ViewName = "Themes/" + options.theme + "/_Message" }; result.ViewData = new ViewDataDictionary(_modelMetadataProvider, context.ModelState); result.ViewData.Add("Message.Title", me.Message.Title); result.ViewData.Add("Message.Content", me.Message.Content); context.Result = result; context.ExceptionHandled = true; } }
public async Task <IActionResult> Index(string search, int?mid, int pageindex = 1) { var options = await optionsCache.Get(); var VM = new IndexViewModel(); VM.search = search; VM.contentlist = await cms.GetContentsAsync(0, search, mid ?? 0, pageindex, int.Parse(options.postslistsize), 0); VM.mid = mid; if (mid > 0) { VM.meta = await mms.GetByMidAsync(mid.Value); } ViewData.Model = VM; return(View()); }
public async Task <JsonResult> Get(int cid, int parentcoid, int page = 1, int pagesize = 10, int skip = 0) { var options = await optionsCache.Get(); var data = await coms.GetAjaxPageListAsync(cid, page, pagesize, parentcoid, skip); var rd = new CommentsModel(); rd.comments = data; if (data != null) { rd.totalcontents = data.TotalContents; rd.totalpages = data.TotalPages; rd.pageindex = data.PageIndex; rd.hascount = data.HasCount; } return(Json(rd)); }
public void OnActionExecuted(ActionExecutedContext context) { var controller = context.Controller as BaseController; var options = optionsCache.Get().Result; var controllerActionDescriptor = context.ActionDescriptor as ControllerActionDescriptor; var result = new ViewResult(); result.ViewName = "Themes/" + options.theme + "/" + controllerActionDescriptor.ControllerName + "/" + controllerActionDescriptor.ActionName; result.ViewData = controller.ViewData; var pagelist = pageCache.GetListAsync().Result; result.ViewData.Add("pagelist", pagelist); result.ViewData.Add("options", options); context.Result = result; }
public async Task <IActionResult> Comment_Post(int cid, int type, int parentcoid, string nickname, string email, string content) { var options = await optionsCache.Get(); if (options.allowcomments == "1") { Message.Show(new Widget.MessageModel() { Content = "站点评论功能已关闭,请返回。" }); } var contentdata = await cms.GetByCidAsync(cid, false); if (contentdata == null) { Message.Show(new Widget.MessageModel() { Content = "评论的内容似乎已经丢失,请返回。" }); } else if (contentdata.allowcomment == 1) { Message.Show(new Widget.MessageModel() { Content = "内容评论功能已关闭,请返回。" }); } var comment = new Comments(); comment.cid = cid; comment.nickname = nickname; comment.mail = email; comment.content = content; comment.createtime = DateTime.Now; comment.parentcoid = 0; if (parentcoid > 0) { var parentcomment = await coms.GetAsync(parentcoid); if (parentcomment == null) { Message.Show(new Widget.MessageModel() { Content = "回复的评论已被删除,请返回重新提交。" }); } else { comment.parentcoid = parentcomment.parentcoid == 0 ? parentcoid : parentcomment.parentcoid; comment.reply = parentcomment.nickname; } } if (TryValidateModel(comment)) { //设置冷却时间 _actioncd.SetCooldown(ActionCooldownType.CommentsPost, RemoteIP); await coms.AddAsync(comment); } else { Message.Show(new Widget.MessageModel() { Content = "输入有误,请返回重新提交。" }); } return(RedirectToAction(type == 0 ? nameof(Article) : nameof(Page), new { cid })); }