//LoadBtn_Click: Loads Trains and Bookings from a file and adjust TrainFactory private void LoadBtn_Click(object sender, RoutedEventArgs e) { OpenFileDialog load_window = new OpenFileDialog(); load_window.Filter = "DAT File|*.dat"; load_window.Title = "Load Rail Network data"; load_window.ShowDialog(); Combined loaded = null; if (!string.IsNullOrEmpty(load_window.FileName)) { try { loaded = TrainFacade.DeserializePair((FileStream)load_window.OpenFile()); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } } else { return; } Trains = loaded.Trains; Bookings = loaded.Bookings; //TrainFactory needs to be rebuilt because TrainFactory context is not serialized TrainFactory.Records = new Dictionary <string, List <string> >(); if (Bookings.Count == 0) { foreach (Train t in Trains) { TrainFactory.Records.Add(t.TrainID, new List <string>()); } } else { foreach (Booking b in Bookings) { if (!TrainFactory.Records.ContainsKey(b.TrainID)) { TrainFactory.Records.Add(b.TrainID, new List <string> { $"{b.Coach}{b.Seat.ToString()}" }); } else { TrainFactory.Records[b.TrainID].Add(b.Coach + b.Seat.ToString()); } } } MessageBox.Show("Loaded!"); }
public void TrainFacadeReturnsProperTrainTest() { var trainFacade = new TrainFacade(); var train = trainFacade.CreateTrain(1997, "Audi", 300, 300, Guid.NewGuid(), Color.Pink, EngineType.Diesel); Assert.AreEqual(train.ProductionYear, 1997); Assert.AreEqual(train.Brand, "Audi"); Assert.AreEqual(train.KerbWeight, 300); Assert.AreEqual(train.MaxVelocity, 300); Assert.AreEqual(train.Color, Color.Pink); Assert.AreEqual(train.EngineType, EngineType.Diesel); }
//SaveBtn_Click: Saves runtime Trains and Bookings as a file private void SaveBtn_Click(object sender, RoutedEventArgs e) { SaveFileDialog save_window = new SaveFileDialog(); save_window.Filter = "DAT File|*.dat"; save_window.Title = "Save Rail Network data"; save_window.ShowDialog(); if (!string.IsNullOrEmpty(save_window.FileName)) { try { TrainFacade.SerializePair(new Combined(Trains, Bookings), (FileStream)save_window.OpenFile()); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } } MessageBox.Show("Saved!"); }