Esempio n. 1
0
        /// <summary>
        /// Get ConfigSection by Id or All Root Sections
        /// </summary>
        public EntityResponse <IQueryable <ConfigDirectory> > GetConfigDirectoryById(long?id)
        {
            IQueryable <ConfigDirectory> configSectionQueryable;

            if (id.HasValue)
            {
                ConfigDirectory configSection = Uow.ConfigDirectories.GetById(id.Value);
                if (configSection == null)
                {
                    return(ErrorCode.ConfigurationSectionNotFound);
                }

                configSectionQueryable = (new List <ConfigDirectory> {
                    configSection
                }).AsQueryable();
            }
            else
            {
                configSectionQueryable = Uow.ConfigDirectories.GetAllRoots();
            }

            EntityResponse <IQueryable <ConfigDirectory> > result = EntityResponse <IQueryable <ConfigDirectory> > .Success(configSectionQueryable);

            return(result);
        }
        public BaseResponse UpdateSection(ConfigDirectoryUpdateViewModel configDirectoryModel)
        {
            ConfigDirectory model    = Mapper.Map <ConfigDirectory>(configDirectoryModel);
            BaseResponse    response = _configurationService.UpdateConfigDirectory(model);

            return(response);
        }
Esempio n. 3
0
 /// <summary>
 /// 保存类命名空间
 /// </summary>
 /// <param name="cns"></param>
 /// <returns></returns>
 public bool Save(ConfigDirectory cns, string oldmodel = "")
 {
     if (!oldmodel.IsNullOrEmpty())
     {
         Delete(oldmodel);
     }
     return(Add(cns));
 }
Esempio n. 4
0
 /// <summary>
 /// Return the Instance if it exists, otherwise load through the ConfigDirectory.
 /// </summary>
 protected static T GetOrLookup(Func <ConfigDirectory, string> lookup)
 {
     if (Instance == null)
     {
         Instance = ConfigDirectory.LoadAsset <T>(lookup);
     }
     return(Instance);
 }
        public ConfigDirectoryViewModel Get(string path)
        {
            string[]        pathParts = path.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
            ConfigDirectory directory = _configurationService.GetConfigDirectory(pathParts);

            ConfigDirectoryViewModel result = Mapper.Map <ConfigDirectoryViewModel>(directory);

            return(result);
        }
Esempio n. 6
0
        /// <summary>
        /// Get ConfigSections by sections path
        /// </summary>
        public EntityResponse <ConfigDirectory> GetConfigDirectory(params string[] path)
        {
            ConfigDirectory configSection = Uow.ConfigDirectories.GetBySections(path);

            if (configSection == null)
            {
                return(ErrorCode.ConfigurationSectionNotFound);
            }

            return(configSection);
        }
        /// <summary>
        /// 构造一个 <see cref="DataBuilderDependency"/>。
        /// </summary>
        /// <param name="name">给定的名称。</param>
        /// <param name="parentDependency">给定的父级 <see cref="IExtensionBuilderDependency"/>(可选)。</param>
        protected DataBuilderDependency(string name, IExtensionBuilderDependency parentDependency = null)
            : base(name, parentDependency)
        {
            // ConfigDirectory
            //CompilersConfigDirectory = ConfigDirectory.CombinePath(DataSettings.Preference.CompilersFolder);
            DatabasesConfigDierctory  = ConfigDirectory.CombinePath(DataSettings.Preference.DatabasesFolder);
            MigrationsConfigDirectory = ConfigDirectory.CombinePath(DataSettings.Preference.MigrationsFolder);

            // ReportDirectory
            DatabasesReportDirectory    = ReportDirectory.CombinePath(DataSettings.Preference.DatabasesFolder);
            InitializersReportDirectory = ReportDirectory.CombinePath(DataSettings.Preference.InitializersFolder);
        }
Esempio n. 8
0
        static void CheckConfigDirectories()
        {
            if (!ConfigDirectory.Exists)
            {
                ConfigDirectory.Create();
            }

            if (!ConfigDirectory.EnumerateDirectories().Any(x => x.Equals(AppMonitorDir) && x.Exists))
            {
                ProcessMonitorDirectory = ConfigDirectory.CreateSubdirectory(AppMonitorDir);
                DumpDefaultConfigs(); // Will also re-create the application's main config file!
            }
            else
            {
                ProcessMonitorDirectory = new DirectoryInfo(AppMonitorDir);
            }
        }
Esempio n. 9
0
        /// <summary>
        /// Update ConfigSection without deletes
        /// </summary>
        public BaseResponse UpdateConfigDirectory(ConfigDirectory configSection)
        {
            EntityResponse <IQueryable <ConfigDirectory> > response = GetConfigDirectoryById(configSection.Id);

            if (!response.IsSuccess)
            {
                return(response.ErrorCode);
            }

            if (response.Entity.Count() > 1)
            {
                // Clients are not available to modify root configSection
                return(ErrorCode.ConfigurationForbiddenToModify);
            }

            ConfigDirectory oldConfigSection = response.Entity.Single();

            oldConfigSection.Description = configSection.Description;
            oldConfigSection.ModifiedBy  = configSection.ModifiedBy;

            foreach (ConfigValue oldSetting in oldConfigSection.ChildValues)
            {
                ConfigValue newSetting = configSection.ChildValues.SingleOrDefault(s => oldSetting.Id.Equals(s.Id));
                if (newSetting == null)
                {
                    // Clients are not available to remove settings
                    return(ErrorCode.ConfigurationForbiddenToModify);
                }

                object result;
                if (!newSetting.TryGetValue(out result))
                {
                    return(ErrorCode.ConfigurationSettingDeserializationError);
                }

                oldSetting.ValueString = newSetting.ValueString;
                oldSetting.Description = newSetting.Description;
                oldSetting.ModifiedBy  = newSetting.ModifiedBy;
            }

            Uow.ConfigDirectories.Update(oldConfigSection);
            Uow.Commit();

            return(BaseResponse.Success());
        }
Esempio n. 10
0
        /// <summary>
        /// Get ConfigSetting by sections path and a <param name="settingName">key</param>
        /// </summary>
        public EntityResponse <ConfigValue> GetConfigValue(string[] configSections, string settingName)
        {
            ConfigDirectory configSection = Uow.ConfigDirectories.GetBySections(configSections);

            if (configSection == null)
            {
                return(ErrorCode.ConfigurationSectionNotFound);
            }

            ConfigValue entity = configSection.ChildValues.SingleOrDefault(item => item.Name.Equals(settingName));

            if (entity == null)
            {
                return(ErrorCode.ConfigurationSettingNotFound);
            }

            return(entity);
        }
Esempio n. 11
0
        /// <summary>
        /// Dumps the application's default configs to their respective locations.
        /// </summary>
        static void DumpDefaultConfigs()
        {
            try {
                using (var resStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(DefaultAppMonConfigUri))
                    using (var fileStream = ConfigDirectory.GetSubdirectory(AppMonitorDir).CreateFile(AppMonConfigTemplateName).OpenWrite()) {
                        resStream.CopyTo(fileStream);
                    }
            } catch (IOException ex) {
                _logger.Error(ex.Message);
            }

            try {
                using (var resStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(DefaultApplicationConfigUri))
                    using (var fileStream = ConfigDirectory.CreateFile(AppConfigTemplateName).OpenWrite()) {
                        resStream.CopyTo(fileStream);
                    }
            } catch (IOException ex) {
                _logger.Error(ex.Message);
            }
        }
Esempio n. 12
0
 /// <summary>
 /// 查询一个命名空间
 /// </summary>
 /// <param name="namespace1"></param>
 /// <returns></returns>
 public ConfigDirectory Get(string name)
 {
     try
     {
         XElement xelem    = XElement.Load(XmlFile);
         var      queryXML = from xele in xelem.Elements("directory")
                             where xele.Element("name").Value == name
                             select new
         {
             name = xele.Element("name").Value
         };
         ConfigDirectory cns = new ConfigDirectory();
         if (queryXML.Count() > 0)
         {
             cns.Name = queryXML.First().name;
         }
         return(cns);
     }
     catch
     {
         return(null);
     }
 }
Esempio n. 13
0
 /// <summary>
 /// 构造一个 <see cref="CoreBuilderDependency"/>。
 /// </summary>
 /// <param name="name">给定的名称。</param>
 protected CoreBuilderDependency(string name)
     : base(name)
 {
     TokensDirectory = ConfigDirectory.CombinePath(CoreSettings.Preference.TokensFolder);
 }