/// <summary>
 /// persists the configuration file to a well known location
 /// </summary>
 public void PersistConfigurationFile(ConfigurationFileType type)
 {
     string filePath = null;
     XDocument versionToPersist = null;
     switch (type)
     {
         case ConfigurationFileType.Current:
             filePath = Filename;
             versionToPersist = NewVersion;
             break;
         case ConfigurationFileType.Backup:
             filePath = Path.Combine(Path.GetDirectoryName(Filename), Path.GetFileNameWithoutExtension(Filename) + ".old");
             versionToPersist = OriginalVersion;
             break;
         case ConfigurationFileType.Replacement:
             filePath = Path.Combine(Path.GetDirectoryName(Filename), Path.GetFileName(Filename) + ".000");
             versionToPersist = OriginalVersion;
             break;
     }
     // first we need to save the altered version of the .csdef file
     FileStream stream = File.Create(filePath);
     using (var writer = new StreamWriter(stream))
     {
         writer.Write(versionToPersist.ToStringFullXmlDeclaration());
     }
 }
        /// <summary>
        /// persists the configuration file to a well known location
        /// </summary>
        public void PersistConfigurationFile(ConfigurationFileType type)
        {
            string    filePath         = null;
            XDocument versionToPersist = null;

            switch (type)
            {
            case ConfigurationFileType.Current:
                filePath         = Filename;
                versionToPersist = NewVersion;
                break;

            case ConfigurationFileType.Backup:
                filePath         = Path.Combine(Path.GetDirectoryName(Filename), Path.GetFileNameWithoutExtension(Filename) + ".old");
                versionToPersist = OriginalVersion;
                break;

            case ConfigurationFileType.Replacement:
                filePath         = Path.Combine(Path.GetDirectoryName(Filename), Path.GetFileName(Filename) + ".000");
                versionToPersist = OriginalVersion;
                break;
            }
            // first we need to save the altered version of the .csdef file
            FileStream stream = File.Create(filePath);

            using (var writer = new StreamWriter(stream))
            {
                writer.Write(versionToPersist.ToStringFullXmlDeclaration());
            }
        }
示例#3
0
        /// <summary>
        /// The overlay stf configuration for one setting type.
        /// </summary>
        /// <param name="directoryName">
        /// The directory name.
        /// </param>
        /// <param name="configurationFileType">
        /// The configuration file type.
        /// </param>
        /// <exception cref="ArgumentOutOfRangeException">
        /// Exception if configuration file type is unrecognized
        /// </exception>
        private void OverlayStfConfigurationForOneSettingType(string directoryName, ConfigurationFileType configurationFileType)
        {
            string configFilename;

            if (!Directory.Exists(directoryName))
            {
                return;
            }

            switch (configurationFileType)
            {
            case ConfigurationFileType.Machine:
                configFilename = "StfConfiguration_Machine.xml";
                break;

            case ConfigurationFileType.User:
                configFilename = "StfConfiguration_User.xml";
                break;

            case ConfigurationFileType.TestCase:
                configFilename = "StfConfiguration_TestCase.xml";
                break;

            case ConfigurationFileType.TestSuite:
                configFilename = "StfConfiguration_TestSuite.xml";
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(configurationFileType), configurationFileType, null);
            }

            var fileLocation = Path.Combine(directoryName, configFilename);

            if (!File.Exists(fileLocation))
            {
                KernelLogger.LogInternal($"Skipping Configuration file [{fileLocation}]: It does not exist, so not overlaying");
                return;
            }

            KernelLogger.LogInternal($"Applying configuration found at [{fileLocation}]");

            StfConfiguration.OverLay(fileLocation);
        }