コード例 #1
0
 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();
     }
 }
コード例 #2
0
        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;
            });
        }
コード例 #3
0
        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();
            });
        }