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); } }