Пример #1
0
        public async Task <Result <double> > CalculateDuty(CalculateDutyViewModel query)
        {
            if (!query.Result.IsValid)
            {
                _logger.LogError($"Validation failed: {query.Result.Errors.FirstOrDefault().ToString()}");
                return(Result.Fail(new Error(query.Result.Errors.FirstOrDefault().ToString())));
            }

            VehicleTaxDto taxInfo = await _vehicleRepository.FetchVehicleTaxByTypeId(query.VehicleTypeId).ConfigureAwait(false);

            if (taxInfo is null)
            {
                _logger.LogError($"Vehicle Type does not exist: {query.Result.Errors.FirstOrDefault().ToString()}");
                return(Result.Fail(new Error("Vehicle Type does not exist!")));
            }


            return(Result.Ok(taxInfo.CalculateDuty(query.CIF))
                   .WithSuccess("Vehicle Tax Listed Succesfully"));
        }
Пример #2
0
        public void CalculateDuty_InputCIFAndVehicleTaxpercentages_ReturnCorrectDuty()
        {
            double duty = _vehicleTax.CalculateDuty(CIF: CIF);

            Assert.IsTrue(duty is 58125.00000000001);
        }