Beispiel #1
0
        public async Task <InitDataBackendResponse> InitData([FromBody] ClientIdBackendRequest request)
        {
            if (string.IsNullOrWhiteSpace(request?.ClientId))
            {
                throw new ArgumentNullException(nameof(ClientIdBackendRequest.ClientId));
            }

            var accounts = _accountsCacheService.GetAll(request.ClientId).ToArray();

            if (accounts.Length == 0 && !_marginSettings.IsLive)
            {
                accounts = await _accountManager.CreateDefaultAccounts(request.ClientId);
            }

            if (accounts.Length == 0)
            {
                return(InitDataBackendResponse.CreateEmpty());
            }

            var assets = _accountAssetsCacheService.GetClientAssets(accounts);

            var result = BackendContractFactory.CreateInitDataBackendResponse(accounts, assets, _marginSettings.IsLive);

            result.IsLive = _marginSettings.IsLive;

            return(result);
        }
Beispiel #2
0
 public static InitDataClientResponse ToClientContract(this InitDataBackendResponse src)
 {
     return(new InitDataClientResponse
     {
         Accounts = src.Accounts.Select(item => item.ToClientContract()).ToArray(),
         TradingConditions = src.AccountAssetPairs.ToDictionary(pair => pair.Key, pair => pair.Value.Select(item => item.ToClientContract()).ToArray())
     });
 }