Beispiel #1
0
        /// <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();
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #9
0
        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);
        }
Beispiel #12
0
        /// <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,
            });
        }
Beispiel #13
0
        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);
            }
        }