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); }
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); }