// ------------------------------------------------------- // 保存 删除 // ------------------------------------------------------- #region 函数:Save(CustomizePageInfo param, IAccountInfo account, string effectScope) /// <summary>保存记录</summary> /// <param name="param">CustomizePageInfo 实例详细信息</param> /// <returns>CustomizePageInfo 实例详细信息</returns> public CustomizePageInfo Save(CustomizePageInfo param, IAccountInfo account, string effectScope) { switch (effectScope) { case "Corporation": param.AuthorizationObjectType = "Organization"; param.AuthorizationObjectId = MembershipManagement.Instance.MemberService[account.Id].CorporationId; break; case "Department": param.AuthorizationObjectType = "Organization"; param.AuthorizationObjectId = MembershipManagement.Instance.MemberService[account.Id].DepartmentId; break; case "Department2": param.AuthorizationObjectType = "Organization"; param.AuthorizationObjectId = MembershipManagement.Instance.MemberService[account.Id].Department2Id; break; case "Organization": param.AuthorizationObjectType = "Organization"; param.AuthorizationObjectId = MembershipManagement.Instance.MemberService[account.Id].OrganizationUnitId; break; default: param.AuthorizationObjectType = "Account"; param.AuthorizationObjectId = account.Id; break; } return(this.Save(param)); }
/// <summary>保存记录</summary> /// <param name="param">CustomizePageInfo 实例详细信息</param> /// <returns>CustomizePageInfo 实例详细信息</returns> public CustomizePageInfo Save(CustomizePageInfo param) { this.provider.Save(param); // 当用户编辑页面,但是没有保存页面,在下一次保存页面内容时需要检查正确的部件实例,然后删除多余的部件。 // <ul id="column1" class="x-ui-pkg-customize-column" ><li id="aa9eef91-ae84-8025-2d1b-73baf86d0ce5" class="x-ui-pkg-customize-widget" widget="news" ><div class="x-ui-pkg-customize-widget-head"><h3>重庆新闻</h3></div><div class="x-ui-pkg-customize-widget-content" ></div></li><li id="cfa9fa79-2466-1f00-bd35-373573916537" class="x-ui-pkg-customize-widget" widget="weather" ><div class="x-ui-pkg-customize-widget-head"><h3>天气预报</h3></div><div class="x-ui-pkg-customize-widget-content" ></div></li></ul><ul id="column2" class="x-ui-pkg-customize-column" ><li id="a79651a7-7f22-adaf-8d11-101631cf987b" class="x-ui-pkg-customize-widget" widget="news" ><div class="x-ui-pkg-customize-widget-head"><h3>北京新闻</h3></div><div class="x-ui-pkg-customize-widget-content" ></div></li></ul><ul id="column3" class="x-ui-pkg-customize-column" ><li id="f69dc940-7bc2-8a42-cb8f-6eabefec266d" class="x-ui-pkg-customize-widget" widget="tasks" ><div class="x-ui-pkg-customize-widget-head"><h3>123</h3></div><div class="x-ui-pkg-customize-widget-content" ></div></li></ul> // 由于每次保存页面是根据授权对象的标识和类型来判断页面唯一性,所以页面标识可能会被修改, // 所以获取数据库中的自定义页面标识需要用以下方法。 param = this.FindOneByName(param.AuthorizationObjectType, param.AuthorizationObjectId, param.Name); XmlDocument doc = new XmlDocument(); doc.LoadXml(string.Format("<root>{0}</root>", param.Html)); XmlNodeList nodes = doc.GetElementsByTagName("li"); // XmlNodeList nodes = doc.SelectNodes("ajaxStorage/ul/li"); string bindingWidgetInstanceIds = string.Empty; foreach (XmlNode node in nodes) { if (((XmlElement)node).GetAttribute("class").IndexOf("x-ui-pkg-customize-widget") > -1) { bindingWidgetInstanceIds += node.Attributes["id"].Value + ","; } } bindingWidgetInstanceIds = bindingWidgetInstanceIds.TrimEnd(','); CustomizeContext.Instance.CustomizeWidgetInstanceService.RemoveUnbound(param.Id, bindingWidgetInstanceIds); return(param); }
/// <summary>获取Html文本</summary> /// <param name="name">页面名称</param> /// <param name="authorizationObjectType">授权对象类别</param> /// <param name="authorizationObjectId">授权对象标识</param> /// <returns>返回一个实例<see cref="CustomizePageInfo"/>的详细信息</returns> public string GetHtml(string name, string authorizationObjectType, string authorizationObjectId) { string xml = this.provider.GetHtml(name, authorizationObjectType, authorizationObjectId); if (string.IsNullOrEmpty(xml)) { xml = CustomizeContext.Instance.CustomizeLayoutService.GetHtml(name); CustomizePageInfo param = new CustomizePageInfo(); param.AuthorizationObjectType = authorizationObjectType; param.AuthorizationObjectId = authorizationObjectId; param.Name = name; param.Title = name; param.Html = xml; this.provider.Save(param); return(string.Empty); } else { return(RenderHtml(xml)); } }
/// <summary>获取Html文本</summary> /// <param name="name">页面名称</param> /// <returns>Html文本</returns> public string GetHtml(string name) { Dictionary <string, object> args = new Dictionary <string, object>(); args.Add("WhereClause", string.Format(" Name = '{0}' ", StringHelper.ToSafeSQL(name, true))); CustomizePageInfo param = this.ibatisMapper.QueryForObject <CustomizePageInfo>(StringHelper.ToProcedurePrefix(string.Format("{0}_GetHtml", tableName)), args); return(param == null ? string.Empty : param.Html); }
private ICustomizePageService service = CustomizeContext.Instance.CustomizePageService; // 数据服务 // ------------------------------------------------------- // 保存 删除 // ------------------------------------------------------- #region 函数:Save(XmlDocument doc) /// <summary>保存记录</summary> /// <param name="doc">Xml 文档对象</param> /// <returns>返回操作结果</returns> public string Save(XmlDocument doc) { CustomizePageInfo param = new CustomizePageInfo(); param = (CustomizePageInfo)AjaxUtil.Deserialize(param, doc); service.Save(param); return(MessageObject.Stringify("0", I18n.Strings["msg_save_success"])); }
/// <summary>获取分页内容</summary> /// <param name="doc">Xml 文档对象</param> /// <returns>返回操作结果</returns> public string Reset(XmlDocument doc) { CustomizePageInfo param = new CustomizePageInfo(); param = (CustomizePageInfo)AjaxUtil.Deserialize(param, doc); param.Html = CustomizeContext.Instance.CustomizeLayoutService.GetHtml(param.Name); this.service.Save(param); return("{\"message\":{\"returnCode\":0,\"value\":\"设置成功。\"}}"); }
/// <summary>查询某条记录</summary> /// <param name="authorizationObjectType">授权对象类别</param> /// <param name="authorizationObjectId">授权对象标识</param> /// <param name="name">页面名称</param> /// <returns>返回一个 CustomizePageInfo 实例的详细信息</returns> public CustomizePageInfo FindOneByName(string authorizationObjectType, string authorizationObjectId, string name) { Dictionary <string, object> args = new Dictionary <string, object>(); args.Add("AuthorizationObjectType", StringHelper.ToSafeSQL(authorizationObjectType)); args.Add("AuthorizationObjectId", StringHelper.ToSafeSQL(authorizationObjectId)); args.Add("Name", name); CustomizePageInfo param = this.ibatisMapper.QueryForObject <CustomizePageInfo>(StringHelper.ToProcedurePrefix(string.Format("{0}_FindOneByName", tableName)), args); return(param); }
// ------------------------------------------------------- // 保存 添加 修改 删除 // ------------------------------------------------------- #region 函数:Save(CustomizePageInfo param) /// <summary>保存记录</summary> /// <param name="param">CustomizePageInfo 实例详细信息</param> /// <returns>CustomizePageInfo 实例详细信息</returns> public CustomizePageInfo Save(CustomizePageInfo param) { if (!IsExist(param.Id)) { Insert(param); } else { Update(param); } return(param); }
/// <summary>设置实例所在的页面和部件类型</summary> /// <param name="param">CustomizeWidgetInstanceInfo 实例详细信息</param> /// <param name="pageId">页面标识</param> /// <param name="widgetName">部件名称</param> /// <returns>部件实例信息</returns> public CustomizeWidgetInstanceInfo SetPageAndWidget(CustomizeWidgetInstanceInfo param, string pageId, string widgetName) { CustomizePageInfo page = CustomizeContext.Instance.CustomizePageService.FindOne(pageId); CustomizeWidgetInfo widget = CustomizeContext.Instance.CustomizeWidgetService.FindOneByName(widgetName); param.PageId = (page == null) ? string.Empty : page.Id; // param.PageName = pageId; param.WidgetId = (widget == null) ? string.Empty : widget.Id; param.WidgetName = widgetName; 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); CustomizePageInfo param = service.FindOne(id); outString.Append("{\"data\":" + AjaxUtil.Parse <CustomizePageInfo>(param) + ","); outString.Append(MessageObject.Stringify("0", I18n.Strings["msg_query_success"], true) + "}"); return(outString.ToString()); }
/// <summary>表单</summary> /// <returns></returns> public ActionResult Form(string options) { // 测试页面 customizes/customize-page/form?id=442049bb-9bb3-49cc-8a30-2454a56c770e // 所属应用信息 ApplicationInfo application = ViewBag.application = AppsContext.Instance.ApplicationService[WebConfiguration.APP_NAME_CUSTOMIZES]; // ------------------------------------------------------- // 身份验证 // ------------------------------------------------------- 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(); CustomizePageInfo param = null; if (string.IsNullOrEmpty(id)) { param = new CustomizePageInfo(); param.Id = param.Name = DigitalNumberContext.Generate("Key_Guid"); param.Html = CustomizeContext.Instance.CustomizeLayoutService.GetHtml("default"); param.CreateDate = param.UpdateDate = DateTime.Now; } else { param = CustomizeContext.Instance.CustomizePageService.FindOne(id); } ViewBag.param = param; return(View("/views/main/customizes/customize-page-form.cshtml")); }
/// <summary>修改记录</summary> /// <param name="param">CustomizePageInfo 实例的详细信息</param> public void Update(CustomizePageInfo param) { this.ibatisMapper.Update(StringHelper.ToProcedurePrefix(string.Format("{0}_Update", tableName)), param); }
/// <summary>添加记录</summary> /// <param name="param">CustomizePageInfo 实例的详细信息</param> public void Insert(CustomizePageInfo param) { this.ibatisMapper.Insert(StringHelper.ToProcedurePrefix(string.Format("{0}_Insert", tableName)), param); }