示例#1
0
        // -------------------------------------------------------
        // 保存 删除
        // -------------------------------------------------------

        #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));
        }
示例#2
0
        /// <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);
        }
示例#3
0
        /// <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);
        }
示例#5
0
        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"]));
        }
示例#6
0
        /// <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);
        }
示例#9
0
        /// <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);
        }
示例#10
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);

            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());
        }
示例#11
0
        /// <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);
 }