public IActionResult Calculate(CalculatePostModel postModel)
        {
            var result = PythagoreanHandler.GetHypotenuse(postModel.SideOne, postModel.SideTwo);
            var model  = new CalculateViewModel
            {
                Result = result
            };

            return(View(model));
        }
        public CalculatedItemWithVatDto Create(CalculatePostModel model, int vatRate)
        {
            var output = new CalculatedItemWithVatDto();

            output.Key             = model.Key;
            output.Amount          = model.Amount;
            output.SingleItemPrice = model.SingleItemPrice;
            var vat = (decimal)vatRate / 100;

            output.VatRate            = vatRate;
            output.SingleItemVatValue = model.SingleItemPrice * vat;
            output.TotalPriceWithVat  = (output.SingleItemPrice + output.SingleItemVatValue) * output.Amount;
            return(output);
        }
Example #3
0
        public void Should_calculate_total_price(decimal singleItemPrice, int vat, int count, decimal expectedVatAmount)
        {
            var sut   = new CalculatedItemWithVatDtoFactory();
            var model = new CalculatePostModel
            {
                SingleItemPrice = singleItemPrice,
                Key             = "key",
                Amount          = count
            };

            var result = sut.Create(model, vat);

            Assert.AreEqual(expectedVatAmount, result.TotalPriceWithVat);
        }
Example #4
0
        public void Should_map_request_data(int vat)
        {
            var sut   = new CalculatedItemWithVatDtoFactory();
            var model = new CalculatePostModel
            {
                SingleItemPrice = 1,
                Key             = "key",
                Amount          = 2
            };

            var result = sut.Create(model, vat);

            Assert.AreEqual(result.VatRate, vat);
            Assert.AreEqual(result.Amount, model.Amount);
            Assert.AreEqual(result.SingleItemPrice, model.SingleItemPrice);
        }