/// <summary> /// Запускает выполнение подзадачи /// </summary> /// <param name="_prx">Настройки прокси</param> /// <returns>Возвращает статистику по проведенной операции</returns> public ActionResult StartFileAction(MyProxy _prx) { this.statistics.StartAction(); this.prx = _prx; try { if (this.source_dest == ActionType.Source) { this.statistics.actType = ActionType.Source; this.ActionAsSource(); } else { this.statistics.actType = ActionType.Destination; this.ActionAsDestination(); } return(this.statistics); } catch (Exception ex) { throw ex; } finally { //i_resulter.AddAction(this.statistics); } }
//все задания могут содержать несколько источников и назначений //сначала на локальный компьютер передаются файлы из источников, а затем //они передаются в назначения 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); }