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); }
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); }