// ------------------------------------------------------- // 保存 删除 // ------------------------------------------------------- #region 函数:Save(XmlDocument doc) /// <summary>保存记录</summary> /// <param name="doc">Xml 文档对象</param> /// <returns>返回操作结果</returns> public string Save(XmlDocument doc) { ForumCommentInfo param = new ForumCommentInfo(); param = (ForumCommentInfo)AjaxUtil.Deserialize(param, doc); param.IP = IPQueryContext.GetClientIP(); param.AccountId = KernelContext.Current.User.Id; param.AccountName = KernelContext.Current.User.Name; param.ModifiedDate = System.DateTime.Now; param.CreatedDate = System.DateTime.Now; // 是否有附件 param.AttachmentFileCount = AttachmentStorageContext.Instance.AttachmentFileService.FindAllByEntityId(KernelContext.ParseObjectType(typeof(ForumCommentInfo)), param.Id).Count; string categoryId = XmlHelper.Fetch("categoryId", doc); // 保存操作 this.service.Save(param); string tipInfo = "保存成功!"; ForumCategoryInfo categoryInfo = ForumContext.Instance.ForumCategoryService.FindOne(categoryId); if (categoryInfo != null) { int score = categoryInfo.PublishCommentPoint; ForumContext.Instance.ForumMemberService.SetPoint(param.AccountId, 1); tipInfo = "回复帖子成功,积分+" + score + "!"; } return("{\"message\":{\"returnCode\":0,\"value\":\"" + tipInfo + "\",\"commentId\":\"" + Guid.NewGuid().ToString() + "\"}}"); }
/// <summary> /// 查询版主名称 /// </summary> /// <param name="categoryId"></param> /// <param name="applicationTag"></param> /// <returns></returns> public string GetCategoryAdminName(string categoryId) { ForumCategoryInfo info = this.FindOne(categoryId); string categoryAdminName = string.Empty; if (info != null) { // categoryAdminName = info.ModeratorScopeObjectView; } return(categoryAdminName); }
/// <summary> /// 查询是否允许匿名发布 /// </summary> /// <param name="id">标识</param> /// <returns>布尔值</returns> public bool IsAnonymous(string id) { bool result = true; ForumCategoryInfo categoryinfo = this.FindOne(id); if (categoryinfo.Anonymous == 0) { result = false; } return(result); }
// ------------------------------------------------------- // 添加 删除 修改 // ------------------------------------------------------- #region 函数:Save(ForumCategoryInfo param) /// <summary>保存记录</summary> /// <param name="param">实例<see cref="ForumCategoryInfo"/>详细信息</param> /// <returns>实例<see cref="ForumCategoryInfo"/>详细信息</returns> public ForumCategoryInfo Save(ForumCategoryInfo param) { if (!IsExist(param.Id)) { Insert(param); } else { Update(param); } return(param); }
// ------------------------------------------------------- // 查询 // ------------------------------------------------------- #region 函数:FindOne(XmlDocument doc) /// <summary>获取详细信息</summary> /// <param name="doc">Xml 文档对象</param> /// <returns>返回操作结果</returns> public string FindOne(XmlDocument doc) { StringBuilder outString = new StringBuilder(); string id = XmlHelper.Fetch("id", doc); string applicationTag = XmlHelper.Fetch("applicationTag", doc); ForumCategoryInfo param = this.service.FindOne(id); outString.Append("{\"data\":" + AjaxUtil.Parse <ForumCategoryInfo>(param) + ","); outString.Append(MessageObject.Stringify("0", I18n.Strings["msg_query_success"], true) + "}"); return(outString.ToString()); }
/// <summary>表单内容界面</summary> /// <returns></returns> public ActionResult Form(string options) { // 防止浏览器读取本地缓存数据,强制页面读取服务器端最新数据。 Response.Cache.SetCacheability(HttpCacheability.NoCache); // 所属应用信息 ApplicationInfo application = ViewBag.application = AppsContext.Instance.ApplicationService[ForumConfiguration.ApplicationName]; JsonData request = JsonMapper.ToObject(options == null ? "{}" : options); string id = !request.Keys.Contains("id") ? string.Empty : request["id"].ToString(); ForumThreadInfo param = null; if (string.IsNullOrEmpty(id)) { IAccountInfo account = KernelContext.Current.User; string categoryId = !request.Keys.Contains("categoryId") ? string.Empty : request["categoryId"].ToString(); ForumCategoryInfo category = ForumContext.Instance.ForumCategoryService.FindOne(categoryId); param = new ForumThreadInfo(); param.Id = DigitalNumberContext.Generate("Key_Guid"); param.AccountId = account.Id; param.AccountName = account.Name; param.CategoryId = category == null ? string.Empty : category.Id; param.CategoryIndex = category == null ? string.Empty : category.CategoryIndex; param.TopExpiryDate = DateHelper.DefaultTime; param.HotExpiryDate = DateHelper.DefaultTime; param.Status = -1; param.CreatedDate = param.ModifiedDate = DateTime.Now; } else { param = ForumContext.Instance.ForumThreadService.FindOne(id); } // 加载当前业务实体数据 ViewBag.entityClassName = KernelContext.ParseObjectType(param.GetType()); // 加载当前业务实体数据 ViewBag.param = param; // 视图 return(View("/views/main/forum/forum-thread-form.cshtml")); }
/// <summary>创建新的对象</summary> /// <param name="doc">Xml 文档对象</param> /// <returns>返回操作结果</returns> public string CreateNewObject(XmlDocument doc) { StringBuilder outString = new StringBuilder(); ForumCategoryInfo param = new ForumCategoryInfo(); param.Id = DigitalNumberContext.Generate("Key_Guid"); param.Status = 1; param.ModifiedDate = param.CreatedDate = DateTime.Now; outString.Append("{\"data\":" + AjaxUtil.Parse <ForumCategoryInfo>(param) + ","); outString.Append(MessageObject.Stringify("0", I18n.Strings["msg_create_success"], true) + "}"); return(outString.ToString()); }
/// <summary>提交界面</summary> /// <returns></returns> public ActionResult Form(string options) { // 所属应用信息 ApplicationInfo application = ViewBag.application = AppsContext.Instance.ApplicationService[ForumConfiguration.ApplicationName]; // ------------------------------------------------------- // 身份验证 // ------------------------------------------------------- if (!AppsSecurity.IsAdministrator(KernelContext.Current.User, application.ApplicationName)) { ApplicationError.Write(401); } JsonData request = JsonMapper.ToObject(options == null ? "{}" : options); string id = !request.Keys.Contains("id") ? string.Empty : request["id"].ToString(); ForumCategoryInfo param = null; if (string.IsNullOrEmpty(id)) { IAccountInfo account = KernelContext.Current.User; param = new ForumCategoryInfo(); param.Id = DigitalNumberContext.Generate("Key_Guid"); param.AccountId = account.Id; param.CreatedDate = param.ModifiedDate = DateTime.Now; } else { param = ForumContext.Instance.ForumCategoryService.FindOne(id); } ViewBag.param = param; return(View("/views/main/forum/forum-category-form.cshtml")); }
// ------------------------------------------------------- // 保存 删除 // ------------------------------------------------------- #region 函数:Save(XmlDocument doc) /// <summary>保存记录</summary> /// <param name="doc">Xml 文档对象</param> /// <returns>返回操作结果</returns> public string Save(XmlDocument doc) { ForumCategoryInfo param = new ForumCategoryInfo(); param = (ForumCategoryInfo)AjaxUtil.Deserialize(param, doc); param.Id = param.Id == "" ? Guid.NewGuid().ToString() : param.Id; ForumCategoryInfo info = this.service.FindOneByCategoryIndex(param.CategoryIndex); if (!this.service.IsExist(param.Id) && info != null) { return("{\"message\":{\"returnCode\":1,\"value\":\"已存在该版块!\"}}"); } string authorizationReadScopeObjectText = XmlHelper.Fetch("authorizationReadScopeObjectText", doc); string authorizationEditScopeObjectText = XmlHelper.Fetch("authorizationEditScopeObjectText", doc); service.BindAuthorizationScopeObjects(param.Id, "应用_通用_查看权限", authorizationReadScopeObjectText); service.BindAuthorizationScopeObjects(param.Id, "应用_通用_修改权限", authorizationEditScopeObjectText); this.service.Save(param); return("{\"message\":{\"returnCode\":0,\"value\":\"保存成功.\"}}"); }
/// <summary></summary> /// <param name="treeViewRootTreeNodeId"></param> /// <param name="url"></param> /// <param name="index"></param> /// <returns></returns> public string GetDynamicTreeChildNodesView(string treeViewRootTreeNodeId, string url, ICategoryIndex index, string isCategory) { StringBuilder outString = new StringBuilder(); foreach (ICategoryIndex item in index.ChildNodes) { outString.Append("{"); outString.Append("\"id\":\"" + item.Value + "\","); outString.Append("\"parentId\":\"" + StringHelper.ToSafeJson((item.Parent.Value == treeViewRootTreeNodeId) ? "0" : item.Parent.Value) + "\","); outString.Append("\"name\":\"" + StringHelper.ToSafeJson(item.Text) + "\","); if (!item.HasChildren || isCategory == "1") { string categoryIndex = item.Value.Substring(5).Replace('_', '\\'); ForumCategoryInfo categoryInfo = this.service.FindOneByCategoryIndex(categoryIndex); outString.Append("\"url\":\"" + StringHelper.ToSafeJson(url.Replace("{treeNodeId}", categoryInfo == null ? "" : categoryInfo.Id).Replace("{treeNodeName}", item.Text).Replace("{treeNodeCategoryIndex}", categoryIndex.Replace("\\", "\\\\"))) + "\","); } outString.Append("\"target\":\"_self\","); outString.Append("\"hasChildren\":\"" + item.HasChildren.ToString().ToLower() + "\","); outString.Append("\"ajaxLoading\":\"false\","); outString.Append("childNodes:["); if (item.HasChildren) { outString.Append(GetDynamicTreeChildNodesView(treeViewRootTreeNodeId, url, item, isCategory)); } outString.Append("]"); outString.Append("},"); } if (outString.Length > 1 && outString.ToString().Substring(outString.Length - 1, 1) == ",") { outString = outString.Remove(outString.Length - 1, 1); } return(outString.ToString()); }
protected void CategoryCheckBoxList_SelectedIndexChanged(object sender, EventArgs e) { for (int i = 0; i < CategoryCheckBoxList.Items.Count; i++) { //CourseCategoryInfo Categoryentity = new CourseCategoryInfo(); ForumCategoryInfo Forumentity = new ForumCategoryInfo(); Forumentity.ForumId = Convert.ToInt32(this.forumId); if (CategoryCheckBoxList.Items[i].Selected == false) { Forumentity.CategoryId = Convert.ToInt32(CategoryCheckBoxList.Items[i].Value.ToString()); //ClassroomController.DeleteCourseCategory(Categoryentity.CourseId, Categoryentity.CategoryId); Forums.DeleteForumCategory(Forumentity.ForumId, Forumentity.CategoryId); } } for (int i = 0; i < CategoryCheckBoxList.Items.Count; i++) { //CourseCategoryInfo Categoryentity = new CourseCategoryInfo(); ForumCategoryInfo Forumentity = new ForumCategoryInfo(); Forumentity.ForumId = Convert.ToInt32(this.forumId); if (CategoryCheckBoxList.Items[i].Selected == true) { Forumentity.CategoryId = Convert.ToInt32(CategoryCheckBoxList.Items[i].Value.ToString()); //ClassroomController.InsertCourseCategory(ref Categoryentity); Forums.InsertForumCategory(ref Forumentity); } } }
// ------------------------------------------------------- // 保存 删除 // ------------------------------------------------------- #region 函数:Save(XmlDocument doc) /// <summary>保存记录</summary> /// <param name="doc">Xml 文档对象</param> /// <returns>返回操作结果</returns> public string Save(XmlDocument doc) { ForumThreadInfo param = new ForumThreadInfo(); param = (ForumThreadInfo)AjaxUtil.Deserialize(param, doc); if (string.IsNullOrEmpty(param.Title.Trim())) { return("{\"message\":{\"returnCode\":\"1\",\"value\":\"帖子标题不能为空。\"}}"); } param.Id = param.Id == "" ? Guid.NewGuid().ToString() : param.Id; param.CommentCount = ForumContext.Instance.ForumCommentService.GetCommentCount(param.Id); // 是否有附件 param.AttachmentFileCount = AttachmentStorageContext.Instance.AttachmentFileService.FindAllByEntityId(KernelContext.ParseObjectType(typeof(ForumThreadInfo)), param.Id).Count; // 查询最后回帖信息 string lastCommentInfo = ForumContext.Instance.ForumCommentService.GetLastComment(param.Id); if (!string.IsNullOrEmpty(lastCommentInfo)) { string[] info = lastCommentInfo.Split(','); param.LatestCommentAccountId = info[0]; param.LatestCommentAccountName = info[1]; } if (!string.IsNullOrEmpty(param.UpdateHistoryLog)) { param.UpdateHistoryLog = "该内容已在" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "被" + KernelContext.Current.User.Name + "编辑过。"; } param.IP = IPQueryContext.GetClientIP(); bool isNewObject = !this.service.IsExist(param.Id); // 保存操作 this.service.Save(param); string message = "保存成功。"; if (param.Status == 1) { ForumCategoryInfo categoryInfo = ForumContext.Instance.ForumCategoryService.FindOne(param.CategoryId); if (categoryInfo != null) { if (this.service.IsExist(param.Id) && !string.IsNullOrEmpty(param.UpdateHistoryLog)) { message = "帖子修改成功。"; } else { int score = categoryInfo == null ? 0 : categoryInfo.PublishThreadPoint; ForumContext.Instance.ForumMemberService.SetPoint(param.AccountId, score); ForumContext.Instance.ForumMemberService.SetThreadCount(param.AccountId); message = "帖子发布成功。"; if (param.Anonymous == 0) { // 发送 Timeline 数据 ApplicationInfo application = AppsContext.Instance.ApplicationService[ForumConfiguration.ApplicationName]; Uri actionUri = new Uri(KernelConfigurationView.Instance.HostName + "/api/timeline.save.aspx?client_id=" + application.Id + "&client_secret=" + application.ApplicationSecret); string taskCode = DigitalNumberContext.Generate("Key_Guid"); string content = string.Format("发布了帖子【{0}】。<a href=\"{1}/forum/article/{2}.aspx\" target=\"_blank\" >网页链接</a>", param.Title, KernelConfigurationView.Instance.HostName, param.Id); string xml = string.Format(@"<?xml version=""1.0"" encoding=""utf-8""?> <request> <id><![CDATA[{0}]]></id> <applicationId><![CDATA[{1}]]></applicationId> <accountId><![CDATA[{2}]]></accountId> <content><![CDATA[{3}]]></content> </request> ", taskCode, application.Id, KernelContext.Current.User.Id, content); // 发送请求信息 AjaxRequestData reqeustData = new AjaxRequestData(); reqeustData.ActionUri = actionUri; reqeustData.Args.Add("xml", xml); AjaxRequest.RequestAsync(reqeustData, null); } } } } return("{\"message\":{\"returnCode\":\"0\",\"value\":\"" + message + "\"}}"); }
/// <summary>修改记录</summary> /// <param name="param">实例<see cref="ForumCategoryInfo"/>详细信息</param> public void Update(ForumCategoryInfo param) { this.ibatisMapper.Update(StringHelper.ToProcedurePrefix(string.Format("{0}_Update", tableName)), param); this.ibatisMapper.Update(StringHelper.ToProcedurePrefix(string.Format("{0}_UpdateThread", tableName)), param); }
/// <summary>添加记录</summary> /// <param name="param">实例<see cref="ForumCategoryInfo"/>详细信息</param> public void Insert(ForumCategoryInfo param) { this.ibatisMapper.Insert(StringHelper.ToProcedurePrefix(string.Format("{0}_Insert", tableName)), param); }
// ------------------------------------------------------- // 保存 删除 // ------------------------------------------------------- #region 函数:Save(ForumCategoryInfo param) /// <summary>保存记录</summary> /// <param name="param">实例<see cref="ForumCategoryInfo"/>详细信息</param> /// <returns>实例<see cref="ForumCategoryInfo"/>详细信息</returns> public ForumCategoryInfo Save(ForumCategoryInfo param) { return(this.provider.Save(param)); }