//проверяет, нужно ли запускать задачу исходя из времени последнего запуска и периодичности private bool PeriodFitting(SavedTaskResults task, string taskPeriod) { DateTime taskCutDT = this.CutDateTime(task.lastRun, taskPeriod); DateTime nowCutDT = this.CutDateTime(GlobalUtils.GetNowUtcDateTime(), taskPeriod); return(taskCutDT == nowCutDT); }
public DateTime GetWorkDate() { if (this.isWorkDTComputed) { return(this.workDateTime); } //сначала вычислим рабочую дату switch (this.dateRange) { case eDateRange.Now: this.workDateTime = GlobalUtils.GetNowUtcDateTime(); break; case eDateRange.Prev: this.workDateTime = this.ComputePrevDate(this.workInterval); break; default: this.workDateTime = new DateTime(); break; } this.isWorkDTComputed = true; return(this.workDateTime); }
public void BackupPlannerXml() { string backupPath = "planner backup"; //проверка, создана ли папка для бекапов if (!Directory.Exists(backupPath)) { Directory.CreateDirectory(backupPath); } //заполняем списов файлов и дат их создания DirectoryInfo di = new DirectoryInfo(backupPath); Dictionary <DateTime, string> nameAndDate = new Dictionary <DateTime, string>(); foreach (FileInfo file in di.GetFiles()) { nameAndDate.Add(file.CreationTime, file.FullName); } //находим самый поздний бекап и удаляем его if (nameAndDate.Count > 10) { string minFile = nameAndDate[nameAndDate.Min(x => x.Key)]; File.Delete(minFile); } //копируем планировщик File.Copy("Planner.xml", backupPath + "\\Planner " + GlobalUtils.GetNowUtcDateTime().ToString("yyyy-MM-dd hh-mm-ss") + ".xml"); }
//когда заканчивается парсинг 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 ControllerOfOutput(bool _testmode) { this.testmode = _testmode; SESSIONDATE = GlobalUtils.GetNowUtcDateTime(); if (!this.testmode) { OutputSupertype email = new OutputEmail(); OutputSupertype allLogFile = new OutputFile("\\alllog.txt"); OutputSupertype errorLogFile = new OutputFile("\\errorlog.txt"); OutputSupertype console = new OutputConsole(); critMessages.Add(email); critMessages.Add(allLogFile); critMessages.Add(console); averageMessages.Add(allLogFile); averageMessages.Add(console); progressMessages.Add(console); errorMessages.Add(errorLogFile); errorMessages.Add(console); errorMessages.Add(allLogFile); errorMessages.Add(email); } else { OutputSupertype console = new OutputConsole(); critMessages.Add(console); averageMessages.Add(console); progressMessages.Add(console); errorMessages.Add(console); } }
public override void WriteLog(string msg, string title) { if (this.file != null) { this.file.WriteLine(GlobalUtils.GetNowUtcDateTime().ToString("yyyy.MM.dd HH:mm:ss") + "\t" + msg); } //Console.WriteLine(msg); }
private DateTime ComputePrevDate(eWorkInterval _int) { switch (this.workInterval) { case eWorkInterval.Days: return(GlobalUtils.GetNowUtcDateTime().AddDays(-1)); case eWorkInterval.Months: return(GlobalUtils.GetNowUtcDateTime().AddMonths(-1)); case eWorkInterval.Years: return(GlobalUtils.GetNowUtcDateTime().AddYears(-1)); default: return(new DateTime()); } }
static void Init(string[] args) { SettingsClass sc = SettingsClass.Instance; //парсинг командной строки foreach (string s in args) { Console.WriteLine(s); if (s == "-sc") { sc.__showConsole = true; } else if (s == "-ra") { sc.__runAll = true; } } ControllerOfOutput.Instance.WriteAverageMessage("Начинаем сессию от " + GlobalUtils.GetNowUtcDateTime().ToString()); }
//останавливаем public void StopAction() { this.stopDate = GlobalUtils.GetNowUtcDateTime(); }
//запускаем public void StartAction() { this.startDate = GlobalUtils.GetNowUtcDateTime(); }