Esempio n. 1
0
        public void _balanceUpdated(BalanceWalletDTO balance, string address, string seed)
        {
            var vlt = _walletList.FirstOrDefault(w => w.Address == address);

            if (vlt != null)
            {
                vlt.Amount    = balance.Amount;
                vlt.AmountBTC = CurrencyHelper.BTCHelperDecimal(balance.PriceBTC * balance.Amount);
                vlt.AmountEUR = CurrencyHelper.FiatHelperDecimal(balance.PriceEUR * balance.Amount);
                vlt.AmountUSD = CurrencyHelper.FiatHelperDecimal(balance.PriceUSD * balance.Amount);
                if (!string.IsNullOrEmpty(balance.MasternodeStatus))
                {
                    vlt.IsMasternode = true;
                }
                vlt.MasternodeStatus = balance.MasternodeStatus;
                vlt.LastUpdated      = balance.LastUpdated;
                vlt.Degraded         = balance.Degraded;
                vlt.Error            = balance.Error;
                vlt.PriceBTC         = balance.PriceBTC;
                vlt.Trend1           = balance.Trend1;
                vlt.Trend7           = balance.Trend7;
                vlt.Trend14          = balance.Trend14;
                NotifyOfPropertyChange(() => TotalBTC);
                NotifyOfPropertyChange(() => TotalEUR);
                NotifyOfPropertyChange(() => TotalUSD);
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Update worker
 /// </summary>
 /// <param name="data"></param>
 private void _worker(object data)
 {
     while (true)
     {
         List <WalletDTO> processWallets;
         lock (locker)
         {
             processWallets = new List <WalletDTO>(_wallets);
         }
         foreach (var wallet in processWallets)
         {
             try
             {
                 var json    = _httpClient.GetStringAsync(string.Format("http://monitorapi.ccore.online/api/getbalance?seed={0}&address={1}", wallet.Seed, wallet.Address)).Result;
                 var balance = JsonConvert.DeserializeObject <BalanceWalletDTO>(json);
                 balance.LastUpdated = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
                 BalanceUpdated?.Invoke(balance, wallet.Address, wallet.Seed);
             }
             catch
             {
                 var balance = new BalanceWalletDTO()
                 {
                     LastUpdated = DateTimeOffset.UtcNow.ToUnixTimeSeconds(),
                     Error       = true
                 };
                 BalanceUpdated?.Invoke(balance, wallet.Address, wallet.Seed);
                 //log exception
             }
         }
         lock (locker)
         {
             _sleep = true;
             while (_sleep)
             {
                 Monitor.Wait(locker);
                 _sleep = false;
             }
         }
     }
 }