예제 #1
0
        // Sets the formatters of NumberBoxes, regulates and corrects user input so it's easier to use
        private void SetNumberBoxFormatters()
        {
            // A basic NumberFormatter, used to regulate currency input by user
            IncrementNumberRounder currencyRounder = new IncrementNumberRounder {
                Increment = 0.01, RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp
            };
            DecimalFormatter currencyFormatter = new DecimalFormatter {
                IntegerDigits = 1, NumberRounder = currencyRounder
            };

            // A number rounder to create whole numbers, we don't charge tuition for parts of children.
            IncrementNumberRounder wholeNumberRounder = new IncrementNumberRounder {
                Increment = 1, RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp
            };
            DecimalFormatter wholeNumberFormatter = new DecimalFormatter {
                IntegerDigits = 1, FractionDigits = 0, NumberRounder = wholeNumberRounder
            };


            StandardTuitionNumberBox.NumberFormatter = currencyFormatter;
            MaximumTuitionNumberBox.NumberFormatter  = currencyFormatter;

            YoungChildPriceNumberBox.NumberFormatter = currencyFormatter;
            OlderChildPriceNumberBox.NumberFormatter = currencyFormatter;

            SingleParentReductionNumberBox.NumberFormatter = wholeNumberFormatter;

            AgePivotNumberBox.NumberFormatter      = wholeNumberFormatter;
            YoungChildMaxNumberBox.NumberFormatter = wholeNumberFormatter;
            OlderChildMaxNumberBox.NumberFormatter = wholeNumberFormatter;
        }
예제 #2
0
        void setRounder()
        {
            // Prevents an exception from being thrown
            if (RoundingAlgorithm == RoundingAlgorithm.None)
            {
                Formatter.NumberRounder = null;
                return;
            }


            if (this.NumberRounder == NumberBoxNumberRounder.IncrementNumberRounder)
            {
                IncrementNumberRounder nr = new IncrementNumberRounder();
                if (this.IncrementPrecision != 0)
                {
                    nr.Increment = this.IncrementPrecision;
                }
                nr.RoundingAlgorithm    = this.RoundingAlgorithm;
                Formatter.NumberRounder = nr;
            }
            else
            {
                SignificantDigitsNumberRounder nr = new SignificantDigitsNumberRounder();
                if (this.SignificantDigitPrecision != 0)
                {
                    nr.SignificantDigits = this.SignificantDigitPrecision;
                }
                nr.RoundingAlgorithm    = this.RoundingAlgorithm;
                Formatter.NumberRounder = nr;
            }
        }
예제 #3
0
        private void SetNumberBoxFormats()
        {
            // Format the input to 2 decimals, used for money-parameter input, could also use CurrencyFormatter
            IncrementNumberRounder moneyRounder = new IncrementNumberRounder {
                Increment = 0.01, RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp
            };
            DecimalFormatter moneyFormatter = new DecimalFormatter {
                IntegerDigits = 1, FractionDigits = 2, NumberRounder = moneyRounder
            };

            // Format the input to 3 decimals, used for distance input
            IncrementNumberRounder distanceRounder = new IncrementNumberRounder {
                Increment = 0.001, RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp
            };
            DecimalFormatter distanceFormatter = new DecimalFormatter {
                IntegerDigits = 1, FractionDigits = 1, NumberRounder = distanceRounder
            };

            // Format the input to whole numbers, used for the weekend premium precentage, could use PercentFormatter
            IncrementNumberRounder wholeNumberRounder = new IncrementNumberRounder {
                Increment = 1, RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp
            };
            DecimalFormatter premiumRateFormatter = new DecimalFormatter {
                IntegerDigits = 1, NumberRounder = wholeNumberRounder
            };

            // Set the relevant formatter for the NumberBox
            PricePerKmInput.NumberFormatter          = moneyFormatter;
            PricePerMinuteDayInput.NumberFormatter   = moneyFormatter;
            PricePerMinuteNightInput.NumberFormatter = moneyFormatter;
            WeekendPremiumInput.NumberFormatter      = premiumRateFormatter;
        }
        public void When_UsingVariousIncrements(double value, double increment, double expected)
        {
            var sut = new IncrementNumberRounder();

            sut.Increment = increment;

            var rounded = sut.RoundDouble(value);

            Assert.AreEqual(expected, rounded);
        }
예제 #5
0
        public void When_FormatDoubleUsingIncrementNumberRounder()
        {
            var sut = new PercentFormatter();
            IncrementNumberRounder rounder = new IncrementNumberRounder();

            rounder.Increment = 0.5;
            sut.NumberRounder = rounder;
            var formatted = sut.FormatDouble(1.8);

            Assert.AreEqual("200.00%", formatted);
        }
        public void When_UsingARoundingAlgorithmCore(double value, RoundingAlgorithm roundingAlgorithm, double expected)
        {
            var sut = new IncrementNumberRounder();

            sut.Increment         = 0.25;
            sut.RoundingAlgorithm = roundingAlgorithm;

            var rounded = sut.RoundDouble(value);

            Assert.AreEqual(expected, rounded);
        }
        public void When_Increment_Is_Invalid_Then_Should_Throw(double increment, bool shouldThrow)
        {
            var sut = new IncrementNumberRounder();

            if (shouldThrow)
            {
                Assert.ThrowsException <ArgumentException>(() => sut.Increment = increment);
            }
            else
            {
                sut.Increment = increment;
            }
        }
        private void SetNumberBoxNumberFormatter()
        {
            IncrementNumberRounder rounder = new IncrementNumberRounder();

            rounder.Increment         = 0.25;
            rounder.RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp;

            DecimalFormatter formatter = new DecimalFormatter();

            formatter.IntegerDigits            = 1;
            formatter.FractionDigits           = 2;
            formatter.NumberRounder            = rounder;
            FormattedNumberBox.NumberFormatter = formatter;
        }
        private void SetFormatersForNumberBoxes()
        {
            IncrementNumberRounder rounder = new IncrementNumberRounder();

            rounder.Increment         = 1;
            rounder.RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp;
            DecimalFormatter formatter = new DecimalFormatter();

            formatter.IntegerDigits  = 1;
            formatter.FractionDigits = 0;
            formatter.NumberRounder  = rounder;
            nb1.NumberFormatter      = formatter;
            nb2.NumberFormatter      = formatter;
            nb3.NumberFormatter      = formatter;
            nb4.NumberFormatter      = formatter;
        }
예제 #10
0
        private void SetNumberBoxNumberFormatter()
        {
            IncrementNumberRounder rounder = new IncrementNumberRounder
            {
                Increment         = 0.25,
                RoundingAlgorithm = RoundingAlgorithm.RoundHalfUp
            };

            DecimalFormatter formatter = new DecimalFormatter
            {
                IntegerDigits  = 1,
                FractionDigits = 2,
                NumberRounder  = rounder
            };

            FormattedNumberBox.NumberFormatter = formatter;
        }
예제 #11
0
        public SettingsViewModel(INavigationService navigationService, ISettingsService settingsService, IOService ioService, IMessenger messenger) : base(navigationService, messenger)
        {
            _settingsService = settingsService;
            _ioService       = ioService;

            PropertyChanged += OnSettingsViewModelPropertyChanged;

            IncrementNumberRounder rounder = new IncrementNumberRounder();

            rounder.Increment            = 0.01;
            rounder.RoundingAlgorithm    = RoundingAlgorithm.RoundHalfUp;
            _decimalFormat.NumberRounder = rounder;

            //TODO: Glenn - Translate enums!
            MeasurementUnits.Add(DistanceUnitType.Kilometres.ToString());
            MeasurementUnits.Add(DistanceUnitType.Miles.ToString());

            SortTypes.Add(ActivitySort.StartTime.ToString());
            SortTypes.Add(ActivitySort.EndTime.ToString());
        }
        private void NumberBox_Loaded(object sender, Windows.UI.Xaml.RoutedEventArgs e)
        {
            NumberBox numberBox = sender as NumberBox;

            // define rounding
            IncrementNumberRounder numberRounder = new IncrementNumberRounder
            {
                Increment = 1
            };

            // define formatting
            DecimalFormatter formatter = new DecimalFormatter
            {
                IntegerDigits  = 1,
                FractionDigits = 0,
                IsGrouped      = false,
                NumberRounder  = numberRounder
            };

            numberBox.NumberFormatter = formatter;
        }
예제 #13
0
        private void NumberBox_Loaded(object sender, RoutedEventArgs e)
        {
            NumberBox numberBox = sender as NumberBox;

            // define rounding
            IncrementNumberRounder numberRounder = new IncrementNumberRounder
            {
                Increment = 0.01
            };

            // define formatting
            DecimalFormatter formatter = new DecimalFormatter
            {
                IntegerDigits  = 1,
                FractionDigits = 2,
                IsGrouped      = false,
                IsDecimalPointAlwaysDisplayed = true,
                NumberRounder = numberRounder
            };

            numberBox.NumberFormatter = formatter;
        }
        public void Should_Throw_When_RoundingAlgorithm_Is_None()
        {
            var sut = new IncrementNumberRounder();

            Assert.ThrowsException <ArgumentException>(() => sut.RoundingAlgorithm = RoundingAlgorithm.None);
        }