public void WorkIsOver2(ResultController rc) { string msg = rc.GenerateMessage(); string title = rc.GenereateTitle(); List <OutputSupertype> ooo = null; if (rc.globalWorkRes == WorkResult.NothingHappens) { //ooo = this.critMessages; ooo = this.averageMessages; } else { ooo = this.critMessages; } if (this.testmode) { ooo = this.emptyMessages; } foreach (OutputSupertype output in ooo) { output.WorkIsOver(msg, title); } }
//когда заканчивается парсинг xml-файла, необходимо выполнить все задания из него по очереди public ResultController StartExchange() { ResultController sessionRC = new ResultController("Выполнение сессии"); foreach (PlannerTask oneTask in tasks) { //успешно ли выполнилось текуще задание bool taskRes = true; DateTime startDT = GlobalUtils.GetNowUtcDateTime(); if (!oneTask.isFake) { //сперва смотрим, нужно ли выполнять данный таск if (this.los.CheckTaskExecute(oneTask.id, oneTask.period)) { //сообщения отправляет класс LogOfSuccession //это сделано потому, что сообщения, преденные системе вывода могут быть разными //и в то же время этому коду нужно знать, продолжать выполнение задания или нет continue; } ResultController tmpResContr = oneTask.TaskStartsExchange(this.prx, sessionRC); taskRes = ActionResult.IsResultIsNotError(tmpResContr.globalWorkRes); sessionRC.AddInnerController(tmpResContr); this.los.SaveTaskResult(oneTask.id, taskRes, startDT); } } //даем команду сохранить все в логах проверки запуска this.los.WorkIsOver(); this.outputs.WorkIsOver2(sessionRC); return(sessionRC); }
public void AddInnerController(ResultController rc) { this.innerControllers.Add(rc); this.globalWorkRes = ActionResult.CompareTwoResults(this.globalWorkRes, rc.globalWorkRes); foreach (KeyValuePair <ActionType, ActionResult> resTypes in rc.resultsByTypes) { this.resultsByTypes[resTypes.Key].MergeResults(resTypes.Value); } }
//все задания могут содержать несколько источников и назначений //сначала на локальный компьютер передаются файлы из источников, а затем //они передаются в назначения public ResultController TaskStartsExchange(MyProxy prx, ResultController sessionResultController) { ResultController taskResultController = new ResultController("Выполнение задачи " + this.id); ControllerOfOutput outputs = ControllerOfOutput.Instance; //LogOfSuccession los = LogOfSuccession.Instance; //bool success = true; try { this.ClearTmpDir(); //Если есть роуты, добавляем их foreach (CmdRoute rt in taskRouts) { BatchRunner.AddRoute(rt.destination, rt.subnetMask, rt.gateway); } List <FileSupertype> downloadFiles = uploadDownload.FindAll(x => x.source_dest == ActionType.Source); List <FileSupertype> uploadFiles = uploadDownload.FindAll(x => x.source_dest == ActionType.Destination); foreach (FileSupertype dfile in downloadFiles) { ActionResult tmpRes = dfile.StartFileAction(prx); taskResultController.AddAction(tmpRes); } foreach (FileSupertype ufile in uploadFiles) { ActionResult tmpRes = ufile.StartFileAction(prx); taskResultController.AddAction(tmpRes); } this.ClearTmpDir(); } catch (Exception ex) { outputs.WriteErrors(ex.Message); } return(taskResultController); }