using System.Threading.Tasks;
public struct CurrensySelBay
public decimal CurrencySel { get; set; }
public decimal CurrencyBay { get; set; }
public static void Main(string[] args){
decimal rateUsdToRub = 57.38M;
decimal rateRubToUsd = 0.017M;
Console.Write("у Вас:\n" + Math.Round(usd,2) + " долларов\n" + Math.Round(rub, 2) + " рублей\n\n\n");
Console.Write("Цена доллара: " + rateUsdToRub + " рублей" + "\nЦена рубля: " + rateRubToUsd + " долларов\n\n");
Console.WriteLine("Обменять: \nрубли в доллары введите: 1 \nдоллары в рубли введите: 2 \n\nДля выхода введите: exit ");
string Switch = Console.ReadLine().ToLower();
CurrensySelBay currensySelBay;
Console.WriteLine("Сколько долларо вы хотите купить?: ");
purchaseAmount = ConvertReadLineToDecimal(Console.ReadLine());
currensySelBay = CurrencyConverter(rub, usd, purchaseAmount, rateUsdToRub);
if (currensySelBay.CurrencyBay == -1 && currensySelBay.CurrencySel == -1){
Console.WriteLine("Ошибка: Недостаточно рублей");
rub = currensySelBay.CurrencySel;
usd = currensySelBay.CurrencyBay;
Console.WriteLine("Сколько рублей вы хотите купить?: ");
purchaseAmount = ConvertReadLineToDecimal(Console.ReadLine());
currensySelBay = CurrencyConverter(usd, rub, purchaseAmount, rateRubToUsd);
if (currensySelBay.CurrencyBay == -1 && currensySelBay.CurrencySel == -1)
Console.WriteLine("Ошибка: Недостаточно долларов");
usd = currensySelBay.CurrencySel;
rub = currensySelBay.CurrencyBay;
Console.WriteLine("Не верный ввод");
public static decimal ConvertReadLineToDecimal(string text)
decimal.TryParse(text, out result);
public static CurrensySelBay CurrencyConverter(decimal currencySel, decimal currencyBay, decimal purchaseAmount, decimal rateCurrency)
if (purchaseAmount <= 0){
return new CurrensySelBay { CurrencySel = -1, CurrencyBay = -1 };
if (currencySel >= purchaseAmount * rateCurrency){
currencySel -= purchaseAmount * rateCurrency;
currencyBay += purchaseAmount;
return new CurrensySelBay { CurrencySel = currencySel, CurrencyBay = currencyBay };
return new CurrensySelBay { CurrencySel = -1, CurrencyBay = -1 };