private BuildProcessor GenerateProcessor(ProcessCondition processCondition) { switch (processCondition.Language) { case SupportedLanguage.CPP: return(new CPPBuildProcessor(processCondition.WorkingDirPath)); case SupportedLanguage.C: return(new CBuildProcessor(processCondition.WorkingDirPath)); case SupportedLanguage.Java: return(new JavaBuildProcessor(processCondition.WorkingDirPath)); case SupportedLanguage.Delphi: return(new PascalBuildProcessor(processCondition.WorkingDirPath, PascalBuildProcessor.PascalCompiler.Delphi)); case SupportedLanguage.ObjPascal: return(new PascalBuildProcessor(processCondition.WorkingDirPath, PascalBuildProcessor.PascalCompiler.ObjPascal)); case SupportedLanguage.FreePascal: return(new PascalBuildProcessor(processCondition.WorkingDirPath, PascalBuildProcessor.PascalCompiler.FreePascal)); case SupportedLanguage.CSharp: return(new CSharpBuildProcessor(processCondition.WorkingDirPath)); default: throw new Exception("Unsupported condition"); } }
public async Task ProcessTask(ProcessCondition processCondition) { ProcessResult processResult = new ProcessResult { Condition = processCondition }; globalProcessQueue.Add(processResult); processStatusChanged.StatusChanged(processResult); FilesHelper.SaveProcessResult(processResult); if (!Executing) { await Task.Factory.StartNew(() => ExecuteProcesses()); } }