/// <summary>
        /// Creates a new instance of <see cref="DesignConfigurationSource"/> based on <paramref name="rootSource"/> and <paramref name="filePath"/>.
        /// </summary>
        /// <param name="rootSource">The source that was used to open the main conifguration file.</param>
        /// <param name="filePath">An absolute of relative path to the file to which the source should be created.</param>
        /// <returns>A new instance of <see cref="DesignConfigurationSource"/>.</returns>
        public static IDesignConfigurationSource CreateDesignSource(IDesignConfigurationSource rootSource, string filePath)
        {
            if (string.IsNullOrEmpty(filePath))
            {
                throw new ArgumentException(Resources.ExceptionStringNullOrEmpty);
            }

            DesignConfigurationSource rootSourceAsDesignSource = rootSource as DesignConfigurationSource;

            if (rootSourceAsDesignSource == null)
            {
                throw new ArgumentException(Resources.CannotCreateDesignSource, "rootSource");
            }

            {
                string mainConfigurationFileDirectory =
                    Path.GetDirectoryName(rootSourceAsDesignSource.ConfigurationFilePath);

                string fullFilePath = Path.Combine(mainConfigurationFileDirectory, filePath);

                if (!File.Exists(fullFilePath))
                {
                    File.WriteAllText(fullFilePath, @"<configuration />");
                }

                return(new DesignConfigurationSource(fullFilePath));
            }
        }
        private static IDesignConfigurationSource GetSectionSource(IDesignConfigurationSource mainConfigurationSource)
        {
            var configSourceSection =
                mainConfigurationSource.GetLocalSection(ConfigurationSourceSection.SectionName) as ConfigurationSourceSection;

            return(GetSelectedConfigSource(configSourceSection, mainConfigurationSource));
        }
        private void SaveSections(IEnumerable <SectionViewModel> sectionsToSave, IDesignConfigurationSource source)
        {
            ClearConfigurationSections(source);

            foreach (var section in sectionsToSave)
            {
                section.Save(source);
            }
        }
        private void ClearConfigurationSections(IDesignConfigurationSource source)
        {
            var locator = builder.Resolve <ConfigurationSectionLocator>();

            foreach (var sectionName in locator.ClearableConfigurationSectionNames)
            {
                source.RemoveLocalSection(sectionName);
            }
        }
        private void SaveConfigurationSource(IDesignConfigurationSource configurationSource)
        {
            var configurationSourceSectionModel = Sections
                                                  .Where(s => typeof(ConfigurationSourceSection).IsAssignableFrom(s.ConfigurationType))
                                                  .OfType <ConfigurationSourceSectionViewModel>()
                                                  .Cast <ConfigurationSourceSectionViewModel>()
                                                  .First();

            ClearConfigurationSections(configurationSource);
            configurationSourceSectionModel.Save(configurationSource);
        }
        private IDesignConfigurationSource GetSectionSourceFromModel(IDesignConfigurationSource mainConfigurationSource)
        {
            var configurationSourceSection = Sections
                                             .Where(s => typeof(ConfigurationSourceSection).IsAssignableFrom(s.ConfigurationType))
                                             .OfType <ConfigurationSourceSectionViewModel>()
                                             .Select(m => m.ConfigurationElement)
                                             .Cast <ConfigurationSourceSection>()
                                             .FirstOrDefault();

            return(GetSelectedConfigSource(configurationSourceSection, mainConfigurationSource));
        }
        public override void Save(IDesignConfigurationSource configurationSource)
        {
            base.Save(configurationSource);

            foreach (ProtectedKeySettings keySettings in 
                DescendentElements().
                SelectMany(x => x.Properties).
                Where(x => typeof(ProtectedKeySettings) == x.PropertyType).
                Select(x => x.Value))
            {
                SaveProtectedKey(keySettings);
            }
        }
        public override void Save(IDesignConfigurationSource configurationSource)
        {
            base.Save(configurationSource);

            foreach (ProtectedKeySettings keySettings in
                     DescendentElements().
                     SelectMany(x => x.Properties).
                     Where(x => typeof(ProtectedKeySettings) == x.PropertyType).
                     Select(x => x.Value))
            {
                SaveProtectedKey(keySettings);
            }
        }
        public bool Load(IDesignConfigurationSource configSource)
        {
            Clear();
            Initialize();

            IDesignConfigurationSource sectionConfigurationSource = null;

            try
            {
                sectionConfigurationSource = GetSectionSource(configSource);
            }
            catch (Exception ex)
            {
                ConfigurationLogWriter.LogException(ex);
                uiService.ShowMessageWpf(string.Format(CultureInfo.CurrentCulture, Resources.ErrorLoadingConfigSourceFile, ex.Message),
                                         Resources.ErrorTitle,
                                         MessageBoxButton.OK);
                return(false);
            }

            if (sectionConfigurationSource != null)
            {
                try
                {
                    AddSection(ConfigurationSourceSection.SectionName,
                               configSource.GetLocalSection(ConfigurationSourceSection.SectionName),
                               new InitializeContext(configSource));

                    LoadSectionsFromSource(sectionConfigurationSource);
                }
                catch
                {
                    var disposable = sectionConfigurationSource as IDisposable;
                    if (disposable != null)
                    {
                        disposable.Dispose();
                    }

                    throw;
                }
            }
            else
            {
                LoadSectionsFromSource(configSource);
            }


            Validate();

            return(true);
        }
        public override void Save(IDesignConfigurationSource configurationSource)
        {
            ProtectionProviderProperty.TypedValue = dataSettingsViewModel.ProtectionProviderProperty.TypedValue;
            oracleSettingsViewModel.ProtectionProviderProperty.TypedValue = dataSettingsViewModel.ProtectionProviderProperty.TypedValue;

            RequirePermissionProperty.TypedValue = dataSettingsViewModel.RequirePermissionProperty.TypedValue;
            oracleSettingsViewModel.RequirePermissionProperty.TypedValue = dataSettingsViewModel.RequirePermissionProperty.TypedValue;

            base.Save(configurationSource);

            if (!OracleSettingsAreEmpty((OracleConnectionSettings)oracleSettingsViewModel.ConfigurationElement))
            {
                oracleSettingsViewModel.Save(configurationSource);
            }

            if (!DaabSettingsAreEmpty((DatabaseSettings)dataSettingsViewModel.ConfigurationElement))
            {
                dataSettingsViewModel.Save(configurationSource);
            }
        }
Example #11
0
        public virtual void Save(IDesignConfigurationSource configurationSource)
        {
            Guard.ArgumentNotNull(configurationSource, "configurationSource");

            ConfigurationSectionCloner cloner = new ConfigurationSectionCloner();
            var savableSection = cloner.Clone((ConfigurationSection)ConfigurationElement);

            BeforeSave(savableSection);

            configurationSource.RemoveLocalSection(configurationSectionName);

            if (protectionProviderProperty.NeedsProtectionProvider)
            {
                configurationSource.Add(configurationSectionName, savableSection, protectionProviderProperty.TypedValue);
            }
            else
            {
                configurationSource.AddLocalSection(configurationSectionName, savableSection);
            }
        }
        private void LoadSectionsFromSource(IDesignConfigurationSource sectionConfigurationSource)
        {
            var locator = builder.Resolve <ConfigurationSectionLocator>();

            foreach (var sectionName in locator.ConfigurationSectionNames)
            {
                try
                {
                    var section = sectionConfigurationSource.GetLocalSection(sectionName);
                    if (section != null)
                    {
                        AddSection(sectionName, section, new InitializeContext(sectionConfigurationSource));
                    }
                }
                catch (Exception e)
                {
                    uiService.ShowError(e, string.Format(CultureInfo.CurrentCulture, Resources.ErrorCouldNotLoadSection, sectionName));
                }
            }
        }
Example #13
0
        public override void Save(IDesignConfigurationSource configurationSource)
        {
            ProtectionProviderProperty.TypedValue = dataSettingsViewModel.ProtectionProviderProperty.TypedValue;
            oracleSettingsViewModel.ProtectionProviderProperty.TypedValue = dataSettingsViewModel.ProtectionProviderProperty.TypedValue;

            RequirePermissionProperty.TypedValue = dataSettingsViewModel.RequirePermissionProperty.TypedValue;
            oracleSettingsViewModel.RequirePermissionProperty.TypedValue = dataSettingsViewModel.RequirePermissionProperty.TypedValue;

            base.Save(configurationSource);

            if (!OracleSettingsAreEmpty((OracleConnectionSettings)oracleSettingsViewModel.ConfigurationElement))
            {
                oracleSettingsViewModel.Save(configurationSource);
            }

            if (!DaabSettingsAreEmpty((DatabaseSettings)dataSettingsViewModel.ConfigurationElement))
            {
                dataSettingsViewModel.Save(configurationSource);
            }
        }
        /// <summary>
        /// Creates a new instance of <see cref="DesignConfigurationSource"/> based on <paramref name="rootSource"/> and <paramref name="filePath"/>.
        /// </summary>
        /// <param name="rootSource">The source that was used to open the main conifguration file.</param>
        /// <param name="filePath">An absolute of relative path to the file to which the source should be created.</param>
        /// <returns>A new instance of <see cref="DesignConfigurationSource"/>.</returns>
        public static IDesignConfigurationSource CreateDesignSource(IDesignConfigurationSource rootSource, string filePath)
        {
            if (string.IsNullOrEmpty(filePath)) throw new ArgumentException(Resources.ExceptionStringNullOrEmpty);

            DesignConfigurationSource rootSourceAsDesignSource = rootSource as DesignConfigurationSource;
            if (rootSourceAsDesignSource == null)
                throw new ArgumentException(Resources.CannotCreateDesignSource, "rootSource");

            {
                string mainConfigurationFileDirectory =
                    Path.GetDirectoryName(rootSourceAsDesignSource.ConfigurationFilePath);

                string fullFilePath = Path.Combine(mainConfigurationFileDirectory, filePath);

                if (!File.Exists(fullFilePath))
                {
                    File.WriteAllText(fullFilePath, @"<configuration />");
                }

                return new DesignConfigurationSource(fullFilePath);
            }
        }
 ///<summary>
 /// Returns a new <see cref="IDesignConfigurationSource"/> configured based on this configuration element.
 ///</summary>
 ///<returns>Returns a new <see cref="IDesignConfigurationSource"/> or null if this source does not have design-time support.</returns>
 public override IDesignConfigurationSource CreateDesignSource(IDesignConfigurationSource rootSource)
 {
     return DesignConfigurationSource.CreateDesignSource(rootSource, FilePath);
 }
        private static IDesignConfigurationSource GetSelectedConfigSource(ConfigurationSourceSection configSourceSection, IDesignConfigurationSource mainConfigurationSource)
        {
            if (configSourceSection == null)
            {
                return(null);
            }

            var selectedSource =
                configSourceSection.Sources.Where(s => s.Name == configSourceSection.SelectedSource).
                FirstOrDefault();

            return(selectedSource == null ? null : selectedSource.CreateDesignSource(mainConfigurationSource));
        }
        public bool Save(IDesignConfigurationSource configurationSource)
        {
            saveOperation.BeginPerformSaveOperation();
            try
            {
                var sectionsToSave = Sections.Where(x => null == x as EnvironmentSourceViewModel);

                var sectionSaveSource = GetSectionSourceFromModel(configurationSource);
                if (sectionSaveSource != null)
                {
                    try
                    {
                        try
                        {
                            SaveConfigurationSource(configurationSource);
                        }
                        catch (Exception e)
                        {
                            ConfigurationLogWriter.LogException(e);
                            uiService.ShowError(e, Resources.ErrorSavingConfigurationSourceOnMainFile);
                            return(false);
                        }
                        try
                        {
                            SaveSections(
                                sectionsToSave.Where(
                                    x => !typeof(ConfigurationSourceSection).IsAssignableFrom(x.ConfigurationType)),
                                sectionSaveSource);
                        }
                        catch (Exception e)
                        {
                            ConfigurationLogWriter.LogException(e);
                            uiService.ShowError(e, Resources.ErrorSavingConfigurationSectionsOnSelectedSource);
                            return(false);
                        }
                        return(true);
                    }
                    finally
                    {
                        var disposable = sectionSaveSource as IDisposable;
                        if (disposable != null)
                        {
                            disposable.Dispose();
                        }
                    }
                }

                try
                {
                    SaveSections(sectionsToSave, configurationSource);
                }
                catch (Exception e)
                {
                    ConfigurationLogWriter.LogException(e);
                    uiService.ShowError(e, Resources.ErrorSavingConfigurationSectionsOnMainFile);
                    return(false);
                }
            }
            finally
            {
                saveOperation.EndPerformSaveOperation();
            }
            return(true);
        }
        public bool Load(IDesignConfigurationSource configSource)
        {
            Clear();
            Initialize();

            IDesignConfigurationSource sectionConfigurationSource = null;
            try
            {
                sectionConfigurationSource = GetSectionSource(configSource);
            }
            catch (Exception ex)
            {
                ConfigurationLogWriter.LogException(ex);
                uiService.ShowMessageWpf(string.Format(CultureInfo.CurrentCulture, Resources.ErrorLoadingConfigSourceFile, ex.Message),
                                            Resources.ErrorTitle,
                                         MessageBoxButton.OK);
                return false;
            }

            if (sectionConfigurationSource != null)
            {
                try
                {
                    AddSection(ConfigurationSourceSection.SectionName,
                               configSource.GetLocalSection(ConfigurationSourceSection.SectionName),
                               new InitializeContext(configSource));

                    LoadSectionsFromSource(sectionConfigurationSource);
                }
                catch
                {
                    var disposable = sectionConfigurationSource as IDisposable;
                    if (disposable != null)
                    {
                        disposable.Dispose();
                    }

                    throw;
                }
            }
            else
            {
                LoadSectionsFromSource(configSource);
            }


            Validate();

            return true;
        }
        private void SaveSections(IEnumerable<SectionViewModel> sectionsToSave, IDesignConfigurationSource source)
        {
            ClearConfigurationSections(source);

            foreach (var section in sectionsToSave)
            {
                section.Save(source);
            }
        }
 private void ClearConfigurationSections(IDesignConfigurationSource source)
 {
     var locator = builder.Resolve<ConfigurationSectionLocator>();
     foreach (var sectionName in locator.ClearableConfigurationSectionNames)
     {
         source.RemoveLocalSection(sectionName);
     }
 }
        private void SaveConfigurationSource(IDesignConfigurationSource configurationSource)
        {
            var configurationSourceSectionModel = Sections
                .Where(s => typeof(ConfigurationSourceSection).IsAssignableFrom(s.ConfigurationType))
                .OfType<ConfigurationSourceSectionViewModel>()
                .Cast<ConfigurationSourceSectionViewModel>()
                .First();

            ClearConfigurationSections(configurationSource);
            configurationSourceSectionModel.Save(configurationSource);
        }
        public bool Save(IDesignConfigurationSource configurationSource)
        {
            saveOperation.BeginPerformSaveOperation();
            try
            {
                var sectionsToSave = Sections.Where(x => null == x as EnvironmentSourceViewModel);

                var sectionSaveSource = GetSectionSourceFromModel(configurationSource);
                if (sectionSaveSource != null)
                {
                    try
                    {
                        try
                        {
                            SaveConfigurationSource(configurationSource);
                        }
                        catch (Exception e)
                        {
                            ConfigurationLogWriter.LogException(e);
                            uiService.ShowError(e, Resources.ErrorSavingConfigurationSourceOnMainFile);
                            return false;
                        }
                        try
                        {
                            SaveSections(
                                sectionsToSave.Where(
                                    x => !typeof(ConfigurationSourceSection).IsAssignableFrom(x.ConfigurationType)),
                                sectionSaveSource);
                        }
                        catch (Exception e)
                        {
                            ConfigurationLogWriter.LogException(e);
                            uiService.ShowError(e, Resources.ErrorSavingConfigurationSectionsOnSelectedSource);
                            return false;
                        }
                        return true;
                    }
                    finally
                    {
                        var disposable = sectionSaveSource as IDisposable;
                        if (disposable != null) disposable.Dispose();
                    }
                }

                try
                {
                    SaveSections(sectionsToSave, configurationSource);
                }
                catch (Exception e)
                {
                    ConfigurationLogWriter.LogException(e);
                    uiService.ShowError(e, Resources.ErrorSavingConfigurationSectionsOnMainFile);
                    return false;
                }
            }
            finally
            {
                saveOperation.EndPerformSaveOperation();
            }
            return true;
        }
        private static IDesignConfigurationSource GetSelectedConfigSource(ConfigurationSourceSection configSourceSection, IDesignConfigurationSource mainConfigurationSource)
        {
            if (configSourceSection == null) return null;

            var selectedSource =
                configSourceSection.Sources.Where(s => s.Name == configSourceSection.SelectedSource).
                    FirstOrDefault();

            return (selectedSource == null ? null : selectedSource.CreateDesignSource(mainConfigurationSource));
        }
Example #24
0
 /// <summary>
 /// Returns a new <see cref="IDesignConfigurationSource"/> configured based on this configuration element.
 /// </summary>
 /// <param name="rootSource">The object that is used by Enterprise Library at design time and provides the ability to retrieve, add, and remove sections.</param>
 /// <returns>Returns a new <see cref="IDesignConfigurationSource"/> or null if this source does not have design-time support.</returns>
 public override IDesignConfigurationSource CreateDesignSource(IDesignConfigurationSource rootSource)
 {
     return(null);
 }
 protected override void Act()
 {
     desingConfigurationSource = configurationSourceElement.CreateDesignSource(mainConfigurationSource);
 }
 ///<summary>
 /// Returns a new <see cref="IDesignConfigurationSource"/> configured based on this configuration element.
 ///</summary>
 ///<returns>Returns a new <see cref="IDesignConfigurationSource"/> or null if this source does not have design-time support.</returns>
 public override IDesignConfigurationSource CreateDesignSource(IDesignConfigurationSource rootSource)
 {
     return(DesignConfigurationSource.CreateDesignSource(rootSource, FilePath));
 }
 ///<summary>
 /// Initializes a enw instance of <see cref="InitializeContext"/>
 /// with the <see cref="IDesignConfigurationSource"/> source specified.
 ///</summary>
 ///<param name="loadSource"></param>
 public InitializeContext(IDesignConfigurationSource loadSource)
 {
     this.loadSource = loadSource;
 }
 protected override void Act()
 {
     desingConfigurationSource = configurationSourceElement.CreateDesignSource(mainConfigurationSource);
 }
 ///<summary>
 /// Returns a new <see cref="IDesignConfigurationSource"/> configured based on this configuration element.
 ///</summary>
 ///<returns>Returns a new <see cref="IDesignConfigurationSource"/> or null if this source does not have design-time support.</returns>
 public virtual IDesignConfigurationSource CreateDesignSource(IDesignConfigurationSource rootSource)
 {
     return(null);
 }
 private void LoadSectionsFromSource(IDesignConfigurationSource sectionConfigurationSource)
 {
     var locator = builder.Resolve<ConfigurationSectionLocator>();
     foreach (var sectionName in locator.ConfigurationSectionNames)
     {
         try
         {
             var section = sectionConfigurationSource.GetLocalSection(sectionName);
             if (section != null)
             {
                 AddSection(sectionName, section, new InitializeContext(sectionConfigurationSource));
             }
         }
         catch (Exception e)
         {
             uiService.ShowError(e, string.Format(CultureInfo.CurrentCulture, Resources.ErrorCouldNotLoadSection, sectionName));
         }
     }
 }
 ///<summary>
 /// Returns a new <see cref="IDesignConfigurationSource"/> configured based on this configuration element.
 ///</summary>
 ///<returns>Returns a new <see cref="IDesignConfigurationSource"/> or null if this source does not have design-time support.</returns>
 public virtual IDesignConfigurationSource CreateDesignSource(IDesignConfigurationSource rootSource)
 {
     
     return null;
 }
        private static IDesignConfigurationSource GetSectionSource(IDesignConfigurationSource mainConfigurationSource)
        {
            var configSourceSection =
                mainConfigurationSource.GetLocalSection(ConfigurationSourceSection.SectionName) as ConfigurationSourceSection;

            return GetSelectedConfigSource(configSourceSection, mainConfigurationSource);
        }
 ///<summary>
 /// Initializes a enw instance of <see cref="InitializeContext"/>
 /// with the <see cref="IDesignConfigurationSource"/> source specified.
 ///</summary>
 ///<param name="loadSource"></param>
 public InitializeContext(IDesignConfigurationSource loadSource)
 {
     this.loadSource = loadSource;
 }
        private IDesignConfigurationSource GetSectionSourceFromModel(IDesignConfigurationSource mainConfigurationSource)
        {
            var configurationSourceSection = Sections
                .Where(s => typeof(ConfigurationSourceSection).IsAssignableFrom(s.ConfigurationType))
                .OfType<ConfigurationSourceSectionViewModel>()
                .Select(m => m.ConfigurationElement)
                .Cast<ConfigurationSourceSection>()
                .FirstOrDefault();

            return GetSelectedConfigSource(configurationSourceSection, mainConfigurationSource);
        }