private void AddSignalboxHoursToView(SignalboxHoursSet hoursSet) { foreach (var box in hoursSet.Hours.Values.Select(b => b.Signalbox)) { if (!_signalboxHoursColumnMap.ContainsKey(box.Id)) { int colIdx = dgvHours.Columns.Add(new DataGridViewTextBoxColumn { HeaderText = box.Code, DefaultCellStyle = new DataGridViewCellStyle { Alignment = DataGridViewContentAlignment.MiddleCenter } }); _signalboxHoursColumnMap.Add(box.Id, colIdx); } } int rowIdx = dgvHours.Rows.Add(dgvHours.RowTemplate.Clone()); dgvHours[_signalboxHoursIdColumn, rowIdx].Value = hoursSet.Id; dgvHours[_signalboxHoursCategoryColumn, rowIdx].Value = hoursSet.Category; foreach (var hours in hoursSet.Hours.Values) { if (hours.StartTime != null && hours.EndTime != null) { dgvHours[_signalboxHoursColumnMap[hours.Signalbox.Id], rowIdx].Value = hours.ToString(Model.Options.ClockType); } } }
/// <summary> /// Convert a <see cref="SignalboxHoursSetModel" /> instance to a <see cref="SignalboxHoursSet" /> instance. /// </summary> /// <param name="model">The object to convert.</param> /// <param name="signalboxes">A dictionary of known signalboxes, for resolving references.</param> /// <param name="existingSets">An enumeration of existing signalbox hours sets, to ensure this routine does not duplicate the ID of an existing set.</param> /// <returns>A <see cref="SignalboxHoursSet" /> containing the same data as the <c>model</c> parameter with references resolved.</returns> /// <exception cref="NullReferenceException">Thrown if the <c>model</c> parameter is <c>null</c>.</exception> /// <exception cref="ArgumentNullException">Thrown if the <c>signalboxes</c> or <c>existingSets</c> parameters are <c>null</c>.</exception> public static SignalboxHoursSet ToSignalboxHoursSet( this SignalboxHoursSetModel model, IDictionary <string, Signalbox> signalboxes, IEnumerable <SignalboxHoursSet> existingSets) { if (model is null) { throw new NullReferenceException(); } if (signalboxes is null) { throw new ArgumentNullException(nameof(signalboxes)); } if (existingSets is null) { throw new ArgumentNullException(nameof(existingSets)); } SignalboxHoursSet hoursSet = new SignalboxHoursSet { Id = GeneralHelper.GetNewId(existingSets), Category = model.Category }; foreach (SignalboxHoursModel hoursModel in model.Signalboxes) { SignalboxHours hours = hoursModel.ToSignalboxHours(signalboxes); hoursSet.Hours.Add(hours.Signalbox.Id, hours); } return(hoursSet); }
public void SignalboxHoursSetExtensionsClass_ToSignalboxHoursSetModelMethod_ThrowsArgumentNullException_IfParameterIsNull() { SignalboxHoursSet testObject = null; _ = testObject.ToSignalboxHoursSetModel(); Assert.Fail(); }
public void SignalboxHoursSetModelExtensionsClass_ToSignalboxHoursSetMethod_ReturnsObjectWithHoursPropertyContainingCorrectNumberOfElements() { SignalboxHoursSetModel testParam0 = GetTestObject(); IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItems(testParam0.Signalboxes.Select(s => s.SignalboxId)); IEnumerable <SignalboxHoursSet> testParam2 = GetExistingSets(); SignalboxHoursSet testOutput = testParam0.ToSignalboxHoursSet(testParam1, testParam2); Assert.AreEqual(testParam0.Signalboxes.Count, testOutput.Hours.Count); }
public void SignalboxHoursSetModelExtensionsClass_ToSignalboxHoursSetMethod_ReturnsObjectWithCorrectCategoryProperty() { SignalboxHoursSetModel testParam0 = GetTestObject(); IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItems(testParam0.Signalboxes.Select(s => s.SignalboxId)); IEnumerable <SignalboxHoursSet> testParam2 = GetExistingSets(); SignalboxHoursSet testOutput = testParam0.ToSignalboxHoursSet(testParam1, testParam2); Assert.AreEqual(testParam0.Category, testOutput.Category); }
public void SignalboxHoursSetModelExtensionsClass_ToSignalboxHoursSetMethod_ReturnsObjectWithIdPropertyThatDiffersFromIdsOfContentsOfThirdParameter() { SignalboxHoursSetModel testParam0 = GetTestObject(); IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItems(testParam0.Signalboxes.Select(s => s.SignalboxId)); IEnumerable <SignalboxHoursSet> testParam2 = GetExistingSets(); SignalboxHoursSet testOutput = testParam0.ToSignalboxHoursSet(testParam1, testParam2); Assert.IsFalse(testParam2.Any(s => s.Id == testOutput.Id)); }
public void SignalboxHoursSetModelExtensionsClass_ToSignalboxHoursSetMethod_ReturnsObjectWithHoursPropertyContainingElementsWithCorrectSignalboxProperties() { SignalboxHoursSetModel testParam0 = GetTestObject(); IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItems(testParam0.Signalboxes.Select(s => s.SignalboxId)); IEnumerable <SignalboxHoursSet> testParam2 = GetExistingSets(); SignalboxHoursSet testOutput = testParam0.ToSignalboxHoursSet(testParam1, testParam2); foreach (string id in testParam0.Signalboxes.Select(s => s.SignalboxId)) { Assert.AreSame(testParam1[id], testOutput.Hours[id].Signalbox); } }
public void SignalboxHoursSetModelExtensionsClass_ToSignalboxHoursSetMethod_ReturnsObjectWithHoursPropertyContainingCorrectlyIndexedElements() { SignalboxHoursSetModel testParam0 = GetTestObject(); IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItems(testParam0.Signalboxes.Select(s => s.SignalboxId)); IEnumerable <SignalboxHoursSet> testParam2 = GetExistingSets(); SignalboxHoursSet testOutput = testParam0.ToSignalboxHoursSet(testParam1, testParam2); foreach (KeyValuePair <string, SignalboxHours> item in testOutput.Hours) { Assert.AreEqual(item.Key, item.Value.Signalbox.Id); } }
public void SignalboxHoursSetExtensionsClass_ToSignalboxHoursSetModelMethod_ThrowsArgumentNullExceptionWithCorrectParamNameProperty_IfParameterIsNull() { SignalboxHoursSet testObject = null; try { _ = testObject.ToSignalboxHoursSetModel(); Assert.Fail(); } catch (ArgumentNullException ex) { Assert.AreEqual("hoursSet", ex.ParamName); } }
/// <summary> /// Convert a <see cref="SignalboxHoursSet" /> instance into a <see cref="SignalboxHoursSetModel" /> instance. /// </summary> /// <param name="hoursSet">The data to be converted.</param> /// <returns>A <see cref="SignalboxHoursSetModel" /> instance that is equivalent to the hoursSet parameter.</returns> public static SignalboxHoursSetModel ToSignalboxHoursSetModel(this SignalboxHoursSet hoursSet) { if (hoursSet is null) { throw new ArgumentNullException(nameof(hoursSet)); } SignalboxHoursSetModel model = new SignalboxHoursSetModel { Category = hoursSet.Category, }; model.Signalboxes.AddRange(hoursSet.Hours.Values.Select(h => h.ToSignalboxHoursModel())); return(model); }
/// <summary> /// Convert a <see cref="SignalboxHoursSet" /> instance to a <see cref="SignalboxHoursSetModel" /> instance. /// </summary> /// <param name="set">The object to convert.</param> /// <returns>A <see cref="SignalboxHoursSetModel" /> instance containing the same data as the parameter in serialisable form.</returns> /// <exception cref="NullReferenceException">Thrown if the parameter is <c>null</c>.</exception> public static SignalboxHoursSetModel ToYamlSignalboxHoursSetModel(this SignalboxHoursSet set) { if (set is null) { throw new NullReferenceException(); } SignalboxHoursSetModel shsm = new SignalboxHoursSetModel { Category = set.Category, }; shsm.Signalboxes.AddRange(set.Hours.Values.Select(h => h.ToYamlSignalboxHoursModel())); return(shsm); }
private void EditSignalboxHoursSet(SignalboxHoursSet selectedSignalboxHoursSet) { using (SignalboxHoursSetEditForm form = new SignalboxHoursSetEditForm { Model = new SignalboxHoursSetEditFormModel { Data = selectedSignalboxHoursSet.Copy(), InputMode = Model.Options.ClockType } }) { DialogResult result = form.ShowDialog(); Log.Trace("SignalboxHoursSetEditForm.ShowDialog() returned {0}", result); if (result != DialogResult.OK) { return; } form.Model.Data.CopyTo(selectedSignalboxHoursSet); } }
public void SignalboxHoursSetModelExtensionsClass_ToSignalboxHoursSetMethod_ReturnsObjectWithHoursPropertyContainingElementsWithCorrectTokenBalanceWarningProperty() { SignalboxHoursSetModel testParam0 = GetTestObject(); IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItems(testParam0.Signalboxes.Select(s => s.SignalboxId)); IEnumerable <SignalboxHoursSet> testParam2 = GetExistingSets(); Dictionary <string, bool?> tokenBalanceWarningFlags = new Dictionary <string, bool?>(); foreach (SignalboxHoursModel box in testParam0.Signalboxes) { tokenBalanceWarningFlags.Add(box.SignalboxId, box.TokenBalanceWarning); } SignalboxHoursSet testOutput = testParam0.ToSignalboxHoursSet(testParam1, testParam2); foreach (string id in testParam0.Signalboxes.Select(s => s.SignalboxId)) { Assert.AreEqual(tokenBalanceWarningFlags[id] ?? false, testOutput.Hours[id].TokenBalanceWarning); } }
private void BtnEdit_Click(object sender, EventArgs e) { if (tcMain.SelectedTab == tabHours) { Log.Trace("MainForm Edit button clicked (signalbox hours mode"); SignalboxHoursSet selectedSignalboxHoursSet = GetSelectedSignalboxHoursSet(); if (selectedSignalboxHoursSet != null) { EditSignalboxHoursSet(selectedSignalboxHoursSet); } return; } Log.Trace("MainForm Edit button clicked (normal mode)"); string trainId = GetSelectedTrainId(); if (trainId == null) { return; } EditTrain(trainId); }
public void SignalboxHoursSetModelExtensionsClass_ToSignalboxHoursSetMethod_ReturnsObjectWithHoursPropertyContainingElementsWithCorrectEndTimeProperty_IfFirstParameterHasSignalboxesPropertyContainingElementsWithFinishTimePropertiesThatHaveTimePropertyThatIsMoreThanThreeNumbersWithinRangeSeparatedByColons() { SignalboxHoursSetModel testParam0 = GetTestObject(); IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItems(testParam0.Signalboxes.Select(s => s.SignalboxId)); IEnumerable <SignalboxHoursSet> testParam2 = GetExistingSets(); Dictionary <string, TimeOfDaySpecification> timeSpecs = new Dictionary <string, TimeOfDaySpecification>(); foreach (SignalboxHoursModel box in testParam0.Signalboxes) { TimeOfDaySpecification timeSpec = new TimeOfDaySpecification(TimeOfDaySpecification.TimeOfDaySpecificationKind.HoursMinutesSecondsAndMore); box.FinishTime = timeSpec.Model; timeSpecs.Add(box.SignalboxId, timeSpec); } SignalboxHoursSet testOutput = testParam0.ToSignalboxHoursSet(testParam1, testParam2); foreach (string id in testParam0.Signalboxes.Select(s => s.SignalboxId)) { Assert.AreEqual(timeSpecs[id].Hours.Value, testOutput.Hours[id].EndTime.Hours24); Assert.AreEqual(timeSpecs[id].Minutes.Value, testOutput.Hours[id].EndTime.Minutes); Assert.AreEqual(timeSpecs[id].Seconds.Value, testOutput.Hours[id].EndTime.Seconds); } }
private void DeleteSignalboxHoursSet(SignalboxHoursSet selectedSignalboxHoursSet) { Model.SignalboxHoursSets.Remove(selectedSignalboxHoursSet); }