public static void UpdateCurrencyRates(Action onFinish) { if (DateTimeOffset.Now.ToUnixTimeSeconds() - UserDataManager.Instance.UserData.monobankData.updateInfo.LastUpdateCurrencyInfoTime > 60 * 5) { UserDataManager.Instance.UserData.monobankData.updateInfo.LastUpdateCurrencyInfoTime = DateTimeOffset.Now.ToUnixTimeSeconds(); Events.EnableLoadingScreen.Invoke(); MonoBankManager.GetExchangeRates(onSuccessful => { UserDataManager.Instance.UserData.monobankData.currenciesRate = onSuccessful; onFinish(); Events.DisableLoadingScreen.Invoke(); }, onError: () => { onFinish(); Events.DisableLoadingScreen.Invoke(); }); } else { onFinish(); } }
public void Init() { if (gameObject.activeInHierarchy) { OnClose(); return; } gameObject.SetActive(true); if (!string.IsNullOrEmpty(UserDataManager.Instance.UserData.monobankData.token)) { monobankTokenInputField.text = UserDataManager.Instance.UserData.monobankData.token; } monobankTokenApproveBttn.interactable = true; TransactionUtils.UpdateCurrencyRates(() => { var currencyInfos = UserDataManager.Instance.UserData.monobankData.currenciesRate; Array.Sort(currencyInfos, delegate(CurrencyInfo user1, CurrencyInfo user2) { if (user1.currencyCodeA == (int)MonoBankManager.CurrencyCode.USD) { return(-1); } return(1); }); // доллар выставляем на пе var result = string.Empty; foreach (var item in currencyInfos) { result += MonoBankManager.GetNameByCurrencyCode(item.currencyCodeA) + " " + Math.Round(item.rateBuy, 2, MidpointRounding.AwayFromZero).ToString("0.00") + " / " + Math.Round(item.rateSell, 2, MidpointRounding.AwayFromZero).ToString("0.00") + "\n"; } exchangeRates.text = result; }); }
public static void UpdateAllBankTransactions(Action onFinish) { Events.EnableLoadingScreen.Invoke(); MonoBankManager.GetTransactions(bankTransactions => { if (bankTransactions == null) { onFinish(); Events.DisableLoadingScreen.Invoke(); return; } foreach (var bankTransaction in bankTransactions) { if (bankTransaction.amount >= 0) { continue; } var time = DateTimeOffset.FromUnixTimeSeconds(bankTransaction.time).LocalDateTime; if (!UserDataManager.Instance.UserData._transactions.Any(item => item.year == time.Year)) { UserDataManager.Instance.UserData._transactions.Add(new YearlyTransactions { year = time.Year }); } var yearlyTrans = UserDataManager.Instance.UserData._transactions.First(item => item.year == time.Year); if (!yearlyTrans.transactions.Any(item => item.month == time.Month)) { yearlyTrans.transactions.Add(new MonthlyTransaction { month = time.Month }); } var monthlyTrans = yearlyTrans.transactions.First(item => item.month == time.Month); if (!monthlyTrans._transactions.Any(item => item.day == time.Day)) { monthlyTrans._transactions.Add(new DailyTransaction { day = time.Day }); } var dayTrans = monthlyTrans._transactions.First(item => item.day == time.Day); if (!dayTrans.bankTransactions.Any(item => item.id == bankTransaction.id)) { bankTransaction.amount = ((long)Math.Round((float)bankTransaction.amount / 100, MidpointRounding.AwayFromZero)) * -1; dayTrans.bankTransactions.Add(bankTransaction); } } Events.DisableLoadingScreen.Invoke(); onFinish(); }); }