private async Task <IPersonalData> FindByMultisigIndex(string phrase) { var clientId = await _walletCredentialsRepository.GetClientIdByMultisig(phrase); if (clientId == null) { return(null); } return(await _personalDataRepository.GetAsync(clientId)); }
private async Task GenerateRequestsForAsset(string asset, decimal minAmount, DateTime?lastActivity = null) { var createdCount = 0; try { var channels = await GetChannels(asset); var existingRequests = await PrepareExistingRequests(asset); foreach (var channel in channels.Balances) { // check balance if (channel.HubAmount < minAmount || existingRequests.Contains(channel.Multisig)) { continue; } //check last activity date if (lastActivity != null && channel.UpdateDt > lastActivity) { continue; } var client = await _walletCredentialsRepository.GetClientIdByMultisig(channel.Multisig); if (string.IsNullOrWhiteSpace(client)) { continue; } await _offchainRequestService.CreateHubCashoutRequests(asset, client); createdCount++; } } finally { if (createdCount != 0) { await _slackNotificationsSender.SendAsync("Offchain", ":information_source:", $"New {createdCount} hub requests were created for {asset}. (min. {minAmount})"); } await _log.WriteInfoAsync(nameof(ManualHubCashoutFunction), nameof(GenerateRequestsForAsset), $"Asset: {asset}, requests created: {createdCount}", "Finished"); } }