public async Task <GrpcResponseWithData <GrpcList <AssetBalanceDto> > > GetBalancesAsync(SourceDto request)
        {
            var data = _externalBalanceCacheManager.GetBalances(request.Source);

            var result = data.Select(e => new AssetBalanceDto(e.Symbol, (double)e.Balance, (double)e.Free)).ToList();

            return(GrpcResponseWithData <GrpcList <AssetBalanceDto> > .Create(GrpcList <AssetBalanceDto> .Create(result)));
        }
        public async Task <GrpcResponseWithData <Dictionary <string, GrpcList <string> > > > GetSourcesAndSymbolsAsync()
        {
            var data = await _orderBookManager.GetSourcesAndSymbols();

            var result = data.ToDictionary(
                e => e.Key,
                e => GrpcList <string> .Create(e.Value)
                );

            return(GrpcResponseWithData <Dictionary <string, GrpcList <string> > > .Create(result));
        }
        public Task <GrpcResponseWithData <GrpcList <LpWallet> > > GetAllAsync()
        {
            var data = _manager.GetAll();

            return(GrpcResponseWithData <GrpcList <LpWallet> > .CreateTask(GrpcList <LpWallet> .Create(data)));
        }
        public Task <GrpcResponseWithData <GrpcList <WalletBalance> > > GetBalancesAsync(WalletNameRequest request)
        {
            var balances = _manager.GetBalances(request.WalletName);

            return(GrpcResponseWithData <GrpcList <WalletBalance> > .CreateTask(GrpcList <WalletBalance> .Create(balances)));
        }
        public Task <GrpcResponseWithData <GrpcList <LpOrder> > > GetLiquidityProviderLastOrdersAsync(GetLiquidityProviderLastOrderRequest request)
        {
            var data = _aggregateLiquidityProviderOrders.GetCurrentOrders(request.BrokerId, request.Symbol);

            return(GrpcResponseWithData <GrpcList <LpOrder> > .CreateTask(GrpcList <LpOrder> .Create(data)));
        }
        public Task <GrpcResponseWithData <GrpcList <string> > > GetSourcesAsync()
        {
            var data = _orderBookManager.GetSources();

            return(GrpcResponseWithData <GrpcList <string> > .CreateTask(GrpcList <string> .Create(data.Result)));
        }
        public async Task <GrpcResponseWithData <GrpcList <string> > > GetSourcesWithSymbolAsync(GetSourcesWithSymbolRequest request)
        {
            var data = await _orderBookManager.GetSourcesWithSymbol(request.Symbol);

            return(GrpcResponseWithData <GrpcList <string> > .Create(GrpcList <string> .Create(data)));
        }
        public async Task <GrpcResponseWithData <LeOrderBook> > GetOrderBookAsync(GetOrderBookRequest request)
        {
            var data = await _orderBookManager.GetOrderBook(request.Symbol, request.Source);

            return(GrpcResponseWithData <LeOrderBook> .Create(data));
        }
        public async Task <GrpcResponseWithData <GrpcList <ExchangeMarketInfo> > > GetInstrumentsAsync(SourceDto request)
        {
            var data = _externalBalanceCacheManager.GetMarketInfo(request.Source);

            return(GrpcResponseWithData <GrpcList <ExchangeMarketInfo> > .Create(GrpcList <ExchangeMarketInfo> .Create(data)));
        }
        public Task <GrpcResponseWithData <GrpcList <string> > > GetExternalMarketListAsync()
        {
            var data = _externalMarketManager.GetMarketNames();

            return(GrpcResponseWithData <GrpcList <string> > .CreateTask(GrpcList <string> .Create(data)));
        }