static SuperChatData() { var euroCurrency = ISOCurrencies.AllCurrencies.First(x => x.Symbol == new CurrencySymbol("€")); KNOWN_CURRENCY = euroCurrency; var redValuta = new Valuta(euroCurrency, 100); RED = new(Color.FromRgb(208, 0, 0), Color.FromRgb(230, 33, 23), Color.FromRgb(255, 255, 255), redValuta); var vanityValuta = new Valuta(euroCurrency, 50); VANITY = new(Color.FromRgb(194, 24, 91), Color.FromRgb(233, 30, 99), Color.FromRgb(255, 255, 255), vanityValuta); var amberValuta = new Valuta(euroCurrency, 20); AMBER = new(Color.FromRgb(230, 81, 0), Color.FromRgb(245, 124, 0), Color.FromRgb(255, 255, 255), amberValuta); var saffronValuta = new Valuta(euroCurrency, 10); SAFFRON = new(Color.FromRgb(255, 179, 0), Color.FromRgb(255, 202, 40), Color.FromRgb(0, 0, 0), saffronValuta); var carribbeanValuta = new Valuta(euroCurrency, 5); CARRIBEAN = new(Color.FromRgb(0, 191, 165), Color.FromRgb(29, 233, 182), Color.FromRgb(0, 0, 0), carribbeanValuta); var cyanValuta = new Valuta(euroCurrency, 2); CYAN = new(Color.FromRgb(0, 184, 212), Color.FromRgb(0, 229, 255), Color.FromRgb(0, 0, 0), cyanValuta); var denimValuta = new Valuta(euroCurrency, 1); DENIM = new(Color.FromRgb(21, 101, 192), default, Color.FromRgb(255, 255, 255), denimValuta);
public static Valuta?ConvertCurrency(ISOCurrency target, ISOCurrency currency, decimal amount) { if (target == currency) { return(new(target, amount)); } var rate = ExchangeRates.ALL_RATES.FirstOrDefault(x => x.Target == currency); if (target == SuperChatData.KNOWN_CURRENCY) { return(rate?.ConvertBack(amount)); } if (currency == SuperChatData.KNOWN_CURRENCY) { return(rate?.Convert(amount)); } // NOTE; Use the KNOWN_CURRENCY as a jump rate var rate1 = ExchangeRates.ALL_RATES.FirstOrDefault(x => x.Target == currency); var rate2 = ExchangeRates.ALL_RATES.FirstOrDefault(x => x.Target == target); if (rate1 is not null && rate2 is not null) { return(rate2.Convert(rate1.ConvertBack(amount).Value)); } return(null); }