Exemple #1
0
        private ServiceResult ValidatePortfolio(PortfolioDto portfolioDto)
        {
            ServiceResult result = new ServiceResult(Common.Enums.ServiceResultType.Success);

            if (string.IsNullOrEmpty(portfolioDto.ISIN))
            {
                result.ResultType = Common.Enums.ServiceResultType.Error;
                result.Message    = $"ISIN code of portfolio is empty";
                return(result);
            }

            if (!IsinValidator.Validate(portfolioDto.ISIN))
            {
                result.ResultType = Common.Enums.ServiceResultType.Error;
                result.Message    = $"ISIN code ('{portfolioDto.ISIN}') of portfolio is not valid";
                return(result);
            }

            if (string.IsNullOrEmpty(portfolioDto.Currency))
            {
                result.ResultType = Common.Enums.ServiceResultType.Error;
                result.Message    = $"Currency code of portfolio is empty";
                return(result);
            }

            if (!CurrencyCodeValidator.Validate(portfolioDto.Currency))
            {
                result.ResultType = Common.Enums.ServiceResultType.Error;
                result.Message    = $"Currency code ('{portfolioDto.Currency}') of portfolio is not valid";
                return(result);
            }

            return(result);
        }
Exemple #2
0
        static async Task Main(string[] args)
        {
            Console.WriteLine("This is an currency calculator, who takes currencyCodes and Amount as input.");

            Console.WriteLine("Currency code to convert from?");

            bool   fromCurrencyValidation;
            string fromCurrency;

            do
            {
                fromCurrency           = Console.ReadLine()?.ToUpper();
                fromCurrencyValidation = CurrencyCodeValidator.ValidateCurrencyCode(fromCurrency);
                if (!fromCurrencyValidation)
                {
                    Console.WriteLine("Currency code invalid!");
                }
            } while (!fromCurrencyValidation);

            Console.WriteLine("Currency code to convert to?");

            bool   toCurrencyValidation;
            string toCurrency;

            do
            {
                toCurrency           = Console.ReadLine()?.ToUpper();
                toCurrencyValidation = CurrencyCodeValidator.ValidateCurrencyCode(toCurrency);
                if (!toCurrencyValidation)
                {
                    Console.WriteLine("Currency code invalid!");
                }
            } while (!toCurrencyValidation);

            Console.WriteLine("Amount to convert?");
            bool    amountValidation;
            decimal amount;

            do
            {
                var consoleAmount = Console.ReadLine();
                amountValidation = decimal.TryParse(consoleAmount, out decimal dec);
                amount           = dec;
                if (!amountValidation)
                {
                    Console.WriteLine("Amount not valid! Amount can only be numeric values");
                }
            } while (!amountValidation);

            var conversionController = new CurrencyConversionController(new CurrencyConversionService());

            var result = await conversionController.ConvertCurrencyFromAmountTo(fromCurrency, toCurrency, amount);

            var printAmount = (decimal)System.Math.Round(result.ToConversion.Amount, 2);

            Console.WriteLine(amount + " " + fromCurrency + " equals " + printAmount + " " + toCurrency + " today.");

            Console.ReadLine();

            Console.WriteLine("Add date to get historical conversion. Dateformat YYYY-MM-DD");


            ConversionResultModel historicalResult;
            var historicalPrintAmount = 0m;
            var date = "";
            var historicalSuccess = false;


            do
            {
                date             = Console.ReadLine();
                historicalResult = await conversionController.ConvertCurrencyFromHistoricalRates(fromCurrency, toCurrency, amount, date);

                if (historicalResult == null)
                {
                    Console.WriteLine("Date not valid!");
                }
                else
                {
                    historicalSuccess = true;
                }
            } while (!historicalSuccess);



            historicalPrintAmount = (decimal)System.Math.Round(historicalResult.ToConversion.Amount, 2);


            Console.WriteLine(historicalPrintAmount + " " + fromCurrency + " equals " + printAmount + " " + toCurrency + " in " + date);
        }