/// <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 SignalboxHoursClass_CopyToMethod_ThrowsArgumentNullException_IfParameterIsNull() { SignalboxHours testObject = new SignalboxHours(); testObject.CopyTo(null); Assert.Fail(); }
public void SignalboxHoursExtensionsClass_ToSignalboxHoursModelMethod_ThrowsArgumentNullException_IfParameterIsNull() { SignalboxHours testObject = null; _ = testObject.ToSignalboxHoursModel(); Assert.Fail(); }
public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ReturnsObjectWithSignalboxPropertySetToNull_IfSecondParameterIsCollectionThatDoesNotContainSignalboxIdPropertyOfFirstParameter() { SignalboxHoursModel testParam0 = GetTestObject(); IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithoutItem(testParam0.SignalboxId); SignalboxHours testOutput = testParam0.ToSignalboxHours(testParam1); Assert.IsNull(testOutput.Signalbox); }
public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ReturnsObjectWithSignalboxPropertySetToNull_IfSecondParameterIsEmptyCollection() { SignalboxHoursModel testParam0 = GetTestObject(); IDictionary <string, Signalbox> testParam1 = new Dictionary <string, Signalbox>(); SignalboxHours testOutput = testParam0.ToSignalboxHours(testParam1); Assert.IsNull(testOutput.Signalbox); }
public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ReturnsObjectWithCorrectSignalboxProperty_IfSecondParameterIsCollectionThatContainsSignalboxIdPropertyOfFirstParameter() { SignalboxHoursModel testParam0 = GetTestObject(); IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItem(testParam0.SignalboxId); SignalboxHours testOutput = testParam0.ToSignalboxHours(testParam1); Assert.AreSame(testParam1[testParam0.SignalboxId], testOutput.Signalbox); }
public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ReturnsObjectWithTokenBalanceWarningPropertyFalse_IfFirstParameterHasTokenBalanceWarningPropertyThatIsTrue() { SignalboxHoursModel testParam0 = GetTestObject(); testParam0.TokenBalanceWarning = true; IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItem(testParam0.SignalboxId); SignalboxHours testOutput = testParam0.ToSignalboxHours(testParam1); Assert.IsTrue(testOutput.TokenBalanceWarning); }
public void SignalboxHoursClass_CopyToMethod_ThrowsArgumentNullExceptionWithCorrectParamNameProperty_IfParameterIsNull() { SignalboxHours testObject = new SignalboxHours(); try { testObject.CopyTo(null); Assert.Fail(); } catch (ArgumentNullException ex) { Assert.AreEqual("target", ex.ParamName); } }
public void SignalboxHoursExtensionsClass_ToSignalboxHoursModelMethod_ThrowsArgumentNullExceptionWithCorrectParamNameProperty_IfParameterIsNull() { SignalboxHours testObject = null; try { _ = testObject.ToSignalboxHoursModel(); Assert.Fail(); } catch (ArgumentNullException ex) { Assert.AreEqual("hours", ex.ParamName); } }
public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ReturnsObjectWithEndTimePropertyWithCorrectValue_IfFirstParameterHasFinishTimePropertyThatHasTimePropertyThatConsistsOfMoreThanThreeNumbersInRangeSeparatedByColons() { SignalboxHoursModel testParam0 = GetTestObject(); TimeOfDaySpecification finishTimeSpecification = new TimeOfDaySpecification(TimeOfDaySpecification.TimeOfDaySpecificationKind.HoursMinutesSecondsAndMore); testParam0.FinishTime = finishTimeSpecification.Model; IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItem(testParam0.SignalboxId); SignalboxHours testOutput = testParam0.ToSignalboxHours(testParam1); Assert.AreEqual(finishTimeSpecification.Hours.Value, testOutput.EndTime.Hours24); Assert.AreEqual(finishTimeSpecification.Minutes.Value, testOutput.EndTime.Minutes); Assert.AreEqual(finishTimeSpecification.Seconds.Value, testOutput.EndTime.Seconds); }
public void SignalboxHoursModelExtensionsClass_ToSignalboxHoursMethod_ReturnsObjectWithStartTimePropertyWithCorrectValue_IfFirstParameterHasStartTimePropertyThatHasTimePropertyThatConsistsOfNumberInRangeWithNoColons() { SignalboxHoursModel testParam0 = GetTestObject(); TimeOfDaySpecification startTimeSpecification = new TimeOfDaySpecification(TimeOfDaySpecification.TimeOfDaySpecificationKind.HoursOnly); testParam0.StartTime = startTimeSpecification.Model; IDictionary <string, Signalbox> testParam1 = GetSignalboxCollectionWithItem(testParam0.SignalboxId); SignalboxHours testOutput = testParam0.ToSignalboxHours(testParam1); Assert.AreEqual(startTimeSpecification.Hours.Value, testOutput.StartTime.Hours24); Assert.AreEqual(0, testOutput.StartTime.Minutes); Assert.AreEqual(0, testOutput.StartTime.Seconds); }
/// <summary> /// Convert a <see cref="SignalboxHours" /> instance into a <see cref="SignalboxHoursModel" /> instance. /// </summary> /// <param name="hours">The data to be converted.</param> /// <returns>A <see cref="SignalboxHoursModel" /> instance that is equivalent to the hours parameter.</returns> public static SignalboxHoursModel ToSignalboxHoursModel(this SignalboxHours hours) { if (hours is null) { throw new ArgumentNullException(nameof(hours)); } return(new SignalboxHoursModel { SignalboxId = hours.Signalbox?.Id, FinishTime = hours.EndTime.ToTimeOfDayModel(), StartTime = hours.StartTime.ToTimeOfDayModel(), TokenBalanceWarning = hours.TokenBalanceWarning, }); }
private void EditSelectedRow(int rowIndex) { string boxIdx = dgvHours[BoxIdColIdx, rowIndex].Value as string; if (!_model.Data.Hours.ContainsKey(boxIdx)) { return; } SignalboxHours hours = _model.Data.Hours[boxIdx]; using (SignalboxHoursEditForm form = new SignalboxHoursEditForm { Model = new SignalboxHoursEditFormModel { Data = hours.Copy(), InputMode = _model.InputMode } }) { if (form.ShowDialog() != DialogResult.OK) { return; } form.Model.Data.CopyTo(hours); } }