Exemple #1
0
    public override ExecuteResult Execute(HandlerStartInfo startInfo)
    {
        ExecuteResult result = new ExecuteResult();

        result.Status = StatusType.Success;
        int cheapSequence = 0;

        // TODO : Implement DryRun Functionality
        if (startInfo.IsDryRun)
        {
            throw new NotImplementedException("Dry Run Functionality Has Not Yet Been Implemented.");
        }

        try
        {
            OnProgress("ModifyFileHandler", "Handler Execution Begins.", StatusType.Running, 0, cheapSequence++);
            if (startInfo.Parameters != null)
            {
                parameters = HandlerUtils.Deserialize <MungeFileHandlerParameters>(startInfo.Parameters);
            }

            bool isValid = Validate();

            if (isValid)
            {
                if (parameters.Files != null)
                {
                    if (config.RunSequential || parameters.Files.Count == 1)
                    {
                        foreach (ModifyFileType file in parameters.Files)
                        {
                            ProcessFile(file, startInfo);
                        }
                    }
                    else
                    {
                        Parallel.ForEach(parameters.Files, file => ProcessFile(file, startInfo));
                    }
                }
            }
        }
        catch (Exception e)
        {
            OnProgress("ModifyFileHandler", "Handler Execution Failed.", StatusType.Failed, 0, cheapSequence++, false, e);
            if (e.InnerException != null)
            {
                OnProgress("ModifyFileHandler", "Inner Exception.", StatusType.Failed, 0, cheapSequence++, false, e.InnerException);
            }
            throw e;
        }

        OnProgress("ModifyFileHandler", "Handler Execution Ends.", StatusType.Running, 0, cheapSequence++);
        return(result);
    }
Exemple #2
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);
    }