Ejemplo n.º 1
0
        private async Task PayoutRewards()
        {
            if (string.IsNullOrWhiteSpace(_creds.MiningProxyUrl))
            {
                return;
            }

            try
            {
                _log.Info("Paying out mining rewards.");
                var res = await _http.GetStringAsync(_creds.MiningProxyUrl).ConfigureAwait(false);

                var data = JsonConvert.DeserializeObject <Payout[]>(res);
                if (data.Length == 0)
                {
                    _log.Info("No payouts sent out.");
                    return;
                }

                var filtered = data.Where(x => x.Amount > 0 && ulong.TryParse(x.User, out _)).ToArray();
                await _cs.AddBulkAsync(filtered.Select(x => ulong.Parse(x.User)),
                                       filtered.Select(x => "Mining payout"),
                                       filtered.Select(x => (long)x.Amount), true);
            }
            catch (Exception ex)
            {
                _log.Warn(ex);
            }
        }