// -------------------------------------------------------
        // 保存 删除
        // -------------------------------------------------------

        #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);
        }
Beispiel #5
0
        // -------------------------------------------------------
        // 查询
        // -------------------------------------------------------

        #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"));
        }
Beispiel #7
0
        /// <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"));
        }
Beispiel #9
0
        // -------------------------------------------------------
        // 保存 删除
        // -------------------------------------------------------

        #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\":\"保存成功.\"}}");
        }
Beispiel #10
0
        /// <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());
        }
Beispiel #11
0
 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);
         }
     }
 }
Beispiel #12
0
        // -------------------------------------------------------
        // 保存 删除
        // -------------------------------------------------------

        #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));
        }