Пример #1
0
        /// <summary>
        /// 应用插件扩展属性
        /// </summary>
        /// <param name="dataTable">扩展数据表</param>
        /// <param name="addon">插件</param>
        public static void GetAddonExtendProperties(PaoObject addon)
        {
            if (addon == null)
            {
                return;
            }

            var keys = ConfigStoragePublic.FindConfigKeys(ExtendAddonStorageName
                                                          , (key) => {
                return(key.IndexOf(addon.ID + "&") == 0);
            });

            if (keys.IsNullOrEmpty())
            {
                return;
            }

            foreach (var key in keys)
            {
                string[] ids           = key.Split(new char[] { '&' }, 2);
                string   propertyName  = ids[1];
                var      propertyValue = ConfigStoragePublic.GetConfig(ExtendAddonStorageName, key);
                AddonPublic.SetPropertyValueByPath(addon, propertyName, propertyValue);
            }
        }
Пример #2
0
        /// <summary>
        /// 根据插件ID查找编辑中的插件
        /// </summary>
        /// <param name="addonID">插件ID</param>
        /// <returns></returns>
        public static PaoObject GetEditiongAddonByID(string addonID)
        {
            if (RootEditingObject == null)
            {
                return(null);
            }
            PaoObject addonEditing = null;

            AddonPublic.TraverseAddon((addon) =>
            {
                if (addon is PaoObject)
                {
                    var paoObj = addon as PaoObject;
                    if (paoObj.ID == addonID)
                    {
                        addonEditing = paoObj;
                        return(false);
                    }
                }

                return(true);
            }, RootEditingObject);

            return(addonEditing);
        }
Пример #3
0
        public PaoObject LoadLocalConfig(string configName)
        {
            PaoObject configObject = null;

            TraverseLocalConfig((p) =>
            {
                configObject = p;
                return(false);
            }, configName);

            return(configObject);
        }
Пример #4
0
 /// <summary>
 /// 抽取插件扩展属性
 /// </summary>
 /// <param name="dataTable">扩展数据表</param>
 /// <param name="addon">插件</param>
 /// <param name="properties">需要纳入扩展的属性</param>
 public static void SetAddonExtendProperties(PaoObject addon, params string[] properties)
 {
     if (addon.IsNotNull() && properties.IsNotNullOrEmpty())
     {
         foreach (var property in properties)
         {
             var propertyValue = addon.GetPropertyValueByPath(property);
             var propertyID    = GetAddonPropertyID(addon, property);
             if (propertyValue.IsNotNull())
             {
                 ConfigStoragePublic.SetConfig(ExtendAddonStorageName, propertyID, propertyValue);
             }
         }
     }
 }
Пример #5
0
        public void SaveLocalConfig(PaoObject configObject)
        {
            var dataService = DataService.Value;

            dataService.ExecuteBySql(Sql_DisableCurrentLocalConfig
                                     , new DataParameter("@ConfigName", configObject.ID)
                                     , new DataParameter("@ComputerID", SecurityPublic.CurrentUser.ComputerID)
                                     , new DataParameter("@SoftwareID", PaoApplication.Default.SoftwareID));

            var configTable = new ConfigDataSet.T_ConfigDataTable();
            var configRow   = configTable.AddT_ConfigRow(Guid.NewGuid()
                                                         , PaoApplication.Default.SoftwareID
                                                         , SecurityPublic.CurrentUser.ComputerID
                                                         , configObject.ID
                                                         , Int32.MaxValue
                                                         , DateTime.Now
                                                         , DateTime.MaxValue
                                                         , null
                                                         , IOPublic.Serialize <byte[]>(configObject));

            dataService.UpdateTable(configTable, "T_Config");
        }
Пример #6
0
        public void SaveGlobalConfig(PaoObject configObject, int priority, IClientFilter clientFilter)
        {
            var dataService = DataService.Value;

            SecurityPublic.DemandPermission(ID, Permission_SaveGlobalConfig);
            dataService.ExecuteBySql(Sql_DisableCurrentLocalConfig
                                     , new DataParameter("@ConfigName", configObject.ID)
                                     , new DataParameter("@SoftwareID", PaoApplication.Default.SoftwareID));

            var configTable = new ConfigDataSet.T_ConfigDataTable();
            var configRow   = configTable.AddT_ConfigRow(Guid.NewGuid()
                                                         , PaoApplication.Default.SoftwareID
                                                         , null
                                                         , configObject.ID
                                                         , priority
                                                         , DateTime.Now
                                                         , DateTime.MaxValue
                                                         , IOPublic.Serialize <byte[]>(clientFilter)
                                                         , IOPublic.Serialize <byte[]>(configObject));

            dataService.UpdateTable(configTable, "T_Config");
        }
Пример #7
0
        /// <summary>
        /// 获取插件属性ID,用于在配置存储中检索
        /// </summary>
        /// <param name="addon">插件</param>
        /// <param name="propertyName">属性名</param>
        /// <returns>插件属性ID</returns>
        private static string GetAddonPropertyID(PaoObject addon, string propertyName)
        {
            var id = String.Format("{0}&{1}", addon.ID, propertyName);

            return(id);
        }