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