/// <summary>
        /// Default constructor - sets the version number and creates empty objects for deep properties.
        /// </summary>
        public TimetableDocument()
        {
            Version = 2;

            TrainClassList = new TrainClassCollection();
            TrainClassList.TrainClassAdd    += TrainClassChangedHandler;
            TrainClassList.TrainClassRemove -= TrainClassChangedHandler;
            TrainList                                   = new TrainCollection();
            TrainList.TrainAdd                         += TrainAddHandler;
            TrainList.TrainRemove                      += TrainRemoveHandler;
            LocationList                                = new LocationCollection();
            LocationList.LocationAdd                   += LocationChangedHandler;
            LocationList.LocationRemove                += LocationChangedHandler;
            DownTrainsDisplay                           = new TimetableSectionModel(Direction.Down, LocationList);
            UpTrainsDisplay                             = new TimetableSectionModel(Direction.Up, LocationList);
            Signalboxes                                 = new SignalboxCollection();
            Signalboxes.SignalboxAdd                   += SignalboxChangedHandler;
            Signalboxes.SignalboxRemove                += SignalboxChangedHandler;
            SignalboxHoursSets                          = new SignalboxHoursSetCollection();
            SignalboxHoursSets.SignalboxHoursSetAdd    += SignalboxHoursSetChangedHandler;
            SignalboxHoursSets.SignalboxHoursSetRemove += SignalboxHoursSetChangedHandler;
            Options                     = new DocumentOptions();
            NoteDefinitions             = new NoteCollection();
            NoteDefinitions.NoteAdd    += NoteChangedHandler;
            NoteDefinitions.NoteRemove += NoteChangedHandler;
            ExportOptions               = new DocumentExportOptions();
        }
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="locations">Locations to include in this template.</param>
 /// <param name="notes">Footnote definitions to include in this template.</param>
 /// <param name="classes">Train classes to include in this template.</param>
 /// <param name="boxes">Signalboxes to include in this template.</param>
 public DocumentTemplate(IEnumerable <Location> locations, IEnumerable <Note> notes, IEnumerable <TrainClass> classes, IEnumerable <Signalbox> boxes)
 {
     Locations       = new LocationCollection(locations ?? Array.Empty <Location>());
     NoteDefinitions = new NoteCollection(notes ?? Array.Empty <Note>());
     TrainClasses    = new TrainClassCollection(classes ?? Array.Empty <TrainClass>());
     Signalboxes     = new SignalboxCollection(boxes ?? Array.Empty <Signalbox>());
 }
        public void TrainEditFormModelClass_Constructor_SetsValidClassesPropertyToSecondParameter()
        {
            LocationCollection   testParam0 = new LocationCollection();
            TrainClassCollection testParam1 = new TrainClassCollection();
            IEnumerable <Note>   testParam2 = GetNotes();
            IEnumerable <Note>   testParam3 = GetNotes();

            TrainEditFormModel testOutput = new TrainEditFormModel(testParam0, testParam1, testParam2, testParam3);

            Assert.AreSame(testParam1, testOutput.ValidClasses);
        }
        public void TrainEditFormModelClass_Constructor_SetsValidTimingPointNotesToEmptyList_IfFourthParameterIsNull()
        {
            LocationCollection   testParam0 = new LocationCollection();
            TrainClassCollection testParam1 = new TrainClassCollection();
            IEnumerable <Note>   testParam2 = GetNotes();
            IEnumerable <Note>   testParam3 = null;

            TrainEditFormModel testOutput = new TrainEditFormModel(testParam0, testParam1, testParam2, testParam3);

            Assert.IsNotNull(testOutput.ValidTimingPointNotes);
            Assert.AreEqual(0, testOutput.ValidTimingPointNotes.Count);
        }
Esempio n. 5
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="locations">Valid locations for timing points.</param>
 /// <param name="classes">Valid train classes.</param>
 /// <param name="trainNotes">Valid footnotes that may appear in train headers.</param>
 /// <param name="timingPointNotes">Valid footnotes that may appear in timing points.</param>
 public TrainEditFormModel(LocationCollection locations, TrainClassCollection classes, IEnumerable <Note> trainNotes, IEnumerable <Note> timingPointNotes)
 {
     ValidLocations        = locations;
     ValidClasses          = classes;
     ValidTrainNotes       = new List <Note>();
     ValidTimingPointNotes = new List <Note>();
     if (trainNotes != null)
     {
         ValidTrainNotes.AddRange(trainNotes);
     }
     if (timingPointNotes != null)
     {
         ValidTimingPointNotes.AddRange(timingPointNotes);
     }
 }
        public void TrainEditFormModelClass_Constructor_SetsValidTrainNotesToListContainingSameDataAsThirdParameter_IfThirdParameterIsNotNull()
        {
            LocationCollection   testParam0 = new LocationCollection();
            TrainClassCollection testParam1 = new TrainClassCollection();
            IEnumerable <Note>   testParam2 = GetNotes();
            IEnumerable <Note>   testParam3 = GetNotes();

            TrainEditFormModel testOutput = new TrainEditFormModel(testParam0, testParam1, testParam2, testParam3);

            Note[] testParamData = testParam2.ToArray();
            Assert.AreEqual(testParamData.Length, testOutput.ValidTrainNotes.Count);
            for (int i = 0; i < testParamData.Length; ++i)
            {
                Assert.AreSame(testParamData[i], testOutput.ValidTrainNotes[i]);
            }
        }
 /// <summary>
 /// Default constructor.
 /// </summary>
 public TrainClassListEditForm(TrainClassCollection model)
 {
     InitializeComponent();
     Model = model;
 }