/// <summary>提交界面</summary>
        /// <returns></returns>
        public ActionResult Form(string options)
        {
            // 所属应用信息
            ApplicationInfo application = ViewBag.application = AppsContext.Instance.ApplicationService[BugConfiguration.ApplicationName];

            JsonData request = JsonMapper.ToObject(options == null ? "{}" : options);

            string id = !request.Keys.Contains("id") ? string.Empty : request["id"].ToString();

            BugCategoryInfo param = null;

            if (string.IsNullOrEmpty(id))
            {
                IAccountInfo account = KernelContext.Current.User;

                param = new BugCategoryInfo();

                param.Id          = DigitalNumberContext.Generate("Key_Guid");
                param.AccountId   = account.Id;
                param.CreatedDate = param.ModifiedDate = DateTime.Now;
            }
            else
            {
                param = BugContext.Instance.BugCategoryService[id];
            }

            ViewBag.param = param;

            // 视图
            return(View("/views/main/bugs/bug-category-form.cshtml"));
        }
        // -------------------------------------------------------
        // 保存 删除
        // -------------------------------------------------------

        #region 函数:Save(BugCategoryInfo param)
        /// <summary>保存记录</summary>
        /// <param name="param">实例<see cref="BugCategoryInfo"/>详细信息</param>
        /// <returns>实例<see cref="BugCategoryInfo"/>详细信息</returns>
        public BugCategoryInfo Save(BugCategoryInfo param)
        {
            if (string.IsNullOrEmpty(param.Id))
            {
                throw new Exception("实例标识不能为空。");
            }

            bool isNewObject = !this.IsExist(param.Id);

            string methodName = isNewObject ? "新增" : "编辑";

            IAccountInfo account = KernelContext.Current.User;

            if (methodName == "新增")
            {
                param.AccountId   = account.Id;
                param.AccountName = account.Name;
            }

            this.provider.Save(param);

            // 保存实体数据操作记录
            EntityLifeHistoryInfo history = new EntityLifeHistoryInfo();

            history.Id              = DigitalNumberContext.Generate("Key_Guid");
            history.AccountId       = account.Id;
            history.MethodName      = methodName;
            history.EntityId        = param.Id;
            history.EntityClassName = KernelContext.ParseObjectType(typeof(BugInfo));
            history.ContextDiffLog  = string.Empty;

            EntitiesManagement.Instance.EntityLifeHistoryService.Save(history);

            return(param);
        }
        /// <summary>查询某条记录</summary>
        /// <param name="categoryIndex">类别索引</param>
        /// <returns>返回实例<see cref="BugCategoryInfo"/>的详细信息</returns>
        public BugCategoryInfo FindOneByCategoryIndex(string categoryIndex)
        {
            Dictionary <string, object> args = new Dictionary <string, object>();

            args.Add("CategoryIndex", categoryIndex);

            BugCategoryInfo param = this.ibatisMapper.QueryForObject <BugCategoryInfo>(StringHelper.ToProcedurePrefix(string.Format("{0}_FindOneByCategoryIndex", this.tableName)), args);

            return(param);
        }
        // -------------------------------------------------------
        // 保存 添加 修改 删除
        // -------------------------------------------------------

        #region 函数:Save(BugCategoryInfo param)
        /// <summary>保存记录</summary>
        /// <param name="param">实例详细信息</param>
        /// <returns></returns>
        public BugCategoryInfo Save(BugCategoryInfo 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);

            BugCategoryInfo param = this.service.FindOne(id);

            outString.Append("{\"data\":" + AjaxUtil.Parse <BugCategoryInfo>(param) + ",");

            outString.Append(MessageObject.Stringify("0", I18n.Strings["msg_query_success"], true) + "}");

            return(outString.ToString());
        }
        // -------------------------------------------------------
        // 保存 删除
        // -------------------------------------------------------

        #region 函数:Save(XmlDocument doc)
        /// <summary>保存记录</summary>
        /// <param name="doc">Xml 文档对象</param>
        /// <returns>返回操作结果</returns>
        public string Save(XmlDocument doc)
        {
            BugCategoryInfo param = new BugCategoryInfo();

            string authorizationAddScopeObjectText  = XmlHelper.Fetch("authorizationAddScopeObjectText", doc);
            string authorizationReadScopeObjectText = XmlHelper.Fetch("authorizationReadScopeObjectText", doc);
            string authorizationEditScopeObjectText = XmlHelper.Fetch("authorizationEditScopeObjectText", doc);

            param = (BugCategoryInfo)AjaxUtil.Deserialize(param, doc);

            param.BindAuthorizationAddScope(authorizationAddScopeObjectText);
            param.BindAuthorizationReadScope(authorizationReadScopeObjectText);
            param.BindAuthorizationEditScope(authorizationEditScopeObjectText);

            this.service.Save(param);

            this.service.BindAuthorizationScopeObjects(param.Id, "应用_通用_添加权限", authorizationAddScopeObjectText);
            this.service.BindAuthorizationScopeObjects(param.Id, "应用_通用_查看权限", authorizationReadScopeObjectText);
            this.service.BindAuthorizationScopeObjects(param.Id, "应用_通用_修改权限", authorizationEditScopeObjectText);

            return(MessageObject.Stringify("0", I18n.Strings["msg_save_success"]));
        }
 /// <summary>修改记录</summary>
 /// <param name="param">实例的详细信息</param>
 public void Update(BugCategoryInfo param)
 {
     this.ibatisMapper.Update(StringHelper.ToProcedurePrefix(string.Format("{0}_Update", this.tableName)), param);
 }
 /// <summary>添加记录</summary>
 /// <param name="param">实例的详细信息</param>
 public void Insert(BugCategoryInfo param)
 {
     this.ibatisMapper.Insert(StringHelper.ToProcedurePrefix(string.Format("{0}_Insert", this.tableName)), param);
 }