/// <summary> /// Load information about timetable from file /// </summary> /// <param name="stream">Stream, that contains path to the file</param> /// <returns>Timetable</returns> public Timetable LoadTimetable(Stream stream) { BinaryReader br = new BinaryReader(stream); string firstStation = br.ReadString(); string lastStation = br.ReadString(); TimeSpan timeOfArrival = TimeSpan.Parse(br.ReadString()); TimeSpan timeOfDeparture = TimeSpan.Parse(br.ReadString()); int type = stream.ReadByte(); Timetable timetable = new Timetable(firstStation, lastStation, timeOfArrival, timeOfDeparture, type); return timetable; }
static void Main(string[] args) { Station st1 = new Station("Минск", 6); Timetable table = new Timetable("Минск-Пассажирский", "Бобруйск", new TimeSpan(4, 6, 2), new TimeSpan(16, 4, 7), 0); Timetable table2 = new Timetable("Минск-Пассажирский", "Коханово", new TimeSpan(1, 54, 52), new TimeSpan(1, 51, 0), 1); Timetable table3 = new Timetable("Вильнюс", "Лида", new TimeSpan(16, 0, 0), new TimeSpan(5, 1, 9), 0); Timetable table4 = new Timetable("Лесная", "Борисов", new TimeSpan(0, 0, 0), new TimeSpan(1, 0, 0), 0); Timetable table5 = new Timetable("Пхов", "Брест", new TimeSpan(14, 35, 0), new TimeSpan(23, 53, 10), 1); st1.AddTimetable(table); st1.AddTimetable(table2); st1.AddTimetable(table3); st1.AddTimetable(table4); st1.AddTimetable(table5); new LINQHTML().SaveTimetables(@"D:\index.html", st1); }
/// <summary> /// Save information about timetable to the file /// </summary> /// <param name="stream">Stream</param> /// <param name="timetable">Timetable, that should be saved</param> public void SaveTimetable(Stream stream, Timetable timetable) { if (timetable != null) { BinaryWriter bw = new BinaryWriter(stream); bw.Write(timetable.FirstStation); bw.Write(timetable.LastStation); bw.Write(timetable.TimeOfArrival.ToString()); bw.Write(timetable.TimeOfDeparture.ToString()); switch (timetable.FreqType) { case Timetable.TypeOfFrequency.AllDays: { stream.WriteByte((byte)0); break; } case Timetable.TypeOfFrequency.OnlyWeekend: { stream.WriteByte((byte)1); break; } case Timetable.TypeOfFrequency.OnlySunday: { stream.WriteByte((byte)2); break; } } } }
/// <summary> /// Create xml document from information about timetable /// </summary> /// <param name="timetable">Timetable</param> /// <returns>XML Element</returns> public XmlElement SaveTimetable(Timetable timetable) { XmlElement elem = xmldoc.CreateElement("Timetable"); elem.SetAttribute("FirstStation", timetable.FirstStation); elem.SetAttribute("LastStation", timetable.LastStation); elem.SetAttribute("TimeOfArrival", timetable.TimeOfArrival.ToString()); elem.SetAttribute("TimeOfDeparture", timetable.TimeOfDeparture.ToString()); int tot = 0; switch (timetable.FreqType) { case Timetable.TypeOfFrequency.AllDays: { tot = 0; break; } case Timetable.TypeOfFrequency.OnlyWeekend: { tot = 1; break; } case Timetable.TypeOfFrequency.OnlySunday: { tot = 2; break; } } elem.SetAttribute("FreqType", tot.ToString()); return elem; }