コード例 #1
0
    public override object GetParametersInstance()
    {
        MungeFileHandlerParameters parms = new MungeFileHandlerParameters();

        parms.Files = new List <ModifyFileType>();

        ModifyFileType file = new ModifyFileType();

        file.Source      = @"C:\Temp\file.config";
        file.Destination = @"C:\Temp\file2.config";
        file.Settings    = new List <SettingsPair <string, string> >();

        file.Settings.Add(new SettingsPair <string, string>("MyKey", "MyValue"));
        file.Settings.Add(new SettingsPair <string, string>("MyKey2", "MyValue2"));

        parms.Files.Add(file);

        return(parms);
    }
コード例 #2
0
    private void ProcessFile(ModifyFileType file, HandlerStartInfo startInfo)
    {
        bool createIfMissing = config.CreateSettingIfNotFound;

        if (file.CreateSettingIfNotFound.HasValue)
        {
            createIfMissing = file.CreateSettingIfNotFound.Value;
        }

        bool overwrite = config.OverwriteExisting;

        if (file.OverwriteExisting.HasValue)
        {
            overwrite = file.OverwriteExisting.Value;
        }

        ConfigType modifyType = config.Type;

        if (file.Type != ConfigType.None)
        {
            modifyType = file.Type;
        }

        if (config.BackupSource)
        {
            try
            {
                ZephyrFile sourceFile = Utilities.GetZephyrFile(file.Source, clients);
                ZephyrFile backupFile = Utilities.GetZephyrFile($"{file.Source}_{DateTime.Now.ToString("yyyyMMddHHmmss")}", clients);
                sourceFile.CopyTo(backupFile);
            }
            catch (Exception e)
            {
                OnLogMessage("BackupSource", $"Error When Backing Up Source File [{file.Source}].", config.StopOnError ? LogLevel.Error : LogLevel.Warn, e);
                if (config.StopOnError)
                {
                    throw;
                }
            }
        }

        try
        {
            Stream settingsFileStream = GetSettingsFileStream(modifyType, file.SettingsFile, startInfo.Crypto);

            switch (modifyType)
            {
            case ConfigType.KeyValue:
                Munger.KeyValue(PropertyFile.Type.Java, file.Source, file.Destination, settingsFileStream, file.SettingsKvp, createIfMissing, overwrite, clients);
                break;

            case ConfigType.INI:
                Munger.KeyValue(PropertyFile.Type.Ini, file.Source, file.Destination, settingsFileStream, file.SettingsKvp, createIfMissing, overwrite, clients);
                break;

            case ConfigType.Regex:
                Munger.RegexMatch(file.Source, file.Destination, settingsFileStream, file.SettingsKvp, overwrite, clients);
                break;

            case ConfigType.XmlTransform:
                Munger.XMLTransform(file.Source, file.Destination, settingsFileStream, overwrite, clients);
                break;

            case ConfigType.XPath:
                Munger.XPath(file.Source, file.Destination, settingsFileStream, file.SettingsKvp, overwrite, clients);
                break;

            default:
                String message = "Unknown File Type [" + modifyType + "] Received.";
                OnLogMessage("ProcessFile", message);
                throw new Exception(message);
            }

            if (String.IsNullOrWhiteSpace(file.Destination))
            {
                OnLogMessage("ModifyFileHandler", String.Format(@"Config Type [{0}], Modified [{1}].", modifyType, file.Source));
            }
            else
            {
                OnLogMessage("ModifyFileHandler", String.Format(@"Config Type [{0}], Modified [{1}] to [{2}].", modifyType, file.Source, file.Destination));
            }
        }
        catch (Exception e)
        {
            OnLogMessage(config.Type.ToString(), $"Error Modifying File [{file.Source}].", (config.StopOnError == true) ? LogLevel.Error : LogLevel.Warn, e);
            if (config.StopOnError)
            {
                throw;
            }
        }
    }