klhztrader/KLHZ.Trader.Core/Exchange/Extentions/InvestApiClientExtentions.cs

26 lines
916 B
C#

using Tinkoff.InvestApi;
using Tinkoff.InvestApi.V1;
namespace KLHZ.Trader.Core.Exchange.Extentions
{
internal static class InvestApiClientExtentions
{
public static async Task<string[]> GetAccounts(this InvestApiClient client, params string[] managedAccountNamePatterns)
{
var accounts = await client.Users.GetAccountsAsync();
var accsIds = new HashSet<string>();
foreach (var pattern in managedAccountNamePatterns)
{
var aids = accounts.Accounts
.Where(a => a.Name.ToLower().Contains(pattern) && a.AccessLevel == AccessLevel.AccountAccessLevelFullAccess)
.Select(a => a.Id);
foreach (var a in aids)
{
accsIds.Add(a);
}
}
return accsIds.ToArray();
}
}
}