public void AddSchedule(CronScheduleInfo schedule, TextReader reader, TextWriter writer) { List <string> comments = new List <string>(); foreach (string line in GetLines(reader)) { if (IsComment(line)) { comments.Add(line); } else { var cur = ParseSchedule(line); if (cur == null || string.Compare(cur.Name, schedule.Name, StringComparison.Ordinal) != 0) { foreach (string c in comments) { writer.WriteLine(c); } writer.WriteLine(line); } else { throw new ArgumentException($"There is already a schedule with the name '{schedule.Name}'."); } comments.Clear(); } } WriteSchedule(writer, schedule); }
public void WriteSchedule(TextWriter writer, CronScheduleInfo schedule) { writer.WriteLine(); WriteDescription(writer, schedule.Description); writer.Write(schedule.Minutes); writer.Write(" "); writer.Write(schedule.Hours); writer.Write(" "); writer.Write(schedule.DaysOfMonth); writer.Write(" "); writer.Write(schedule.Months); writer.Write(" "); writer.Write(schedule.DaysOfWeek); writer.Write(" "); writer.Write(schedule.Name); writer.WriteLine(); }
protected CronScheduleInfo ParseSchedule(string line) { line = line.Trim(); if (line.Length == 0) { return(null); } string[] parts = line.Split(new[] { ' ', '\t' }, 6); if (parts.Length < 6) { throw new FormatException(); } CronScheduleInfo result = new CronScheduleInfo(); result.Minutes = parts[0]; result.Hours = parts[1]; result.DaysOfMonth = parts[2]; result.Months = parts[3]; result.DaysOfWeek = parts[4]; result.Name = parts[5]; return(result); }
public void UpdateSchedule(string name, CronScheduleInfo schedule, TextReader reader, TextWriter writer) { RemoveSchedule(name, reader, writer); WriteSchedule(writer, schedule); }