Ejemplo n.º 1
0
        public override async Task <LimitOrdersResponse> GetOrders(LimitOrdersRequest request, ServerCallContext context)
        {
            var session = SessionFromContext(context);

            var assetId = request.OptionalAssetPairIdCase == LimitOrdersRequest.OptionalAssetPairIdOneofCase.AssetPairId
                ? request.AssetPairId
                : string.Empty;

            var orders = await _clientWalletService.GetClientOrdersAsync(session.TenantId, session.ClientId, assetId);

            var response = new LimitOrdersResponse()
            {
                Result = new LimitOrdersResponse.Types.OrdersPayload()
                {
                    Orders =
                    {
                        orders.Select(o => new LimitOrderModel()
                        {
                            Id                   = o.ExternalId,
                            DateTime             = Timestamp.FromDateTime(DateTime.SpecifyKind(o.CreatedAt, DateTimeKind.Utc)),
                            Asset                = string.Empty,
                            Price                = o.Price,
                            Volume               = o.Volume.Replace("-", ""),
                            RemainingVolume      = o.RemainingVolume,
                            AssetPair            = o.AssetPairId,
                            RemainingOtherVolume = o.RemainingVolume,
                            TotalCost            = (decimal.Parse(o.Price) * decimal.Parse(o.Volume)).ToString(CultureInfo.InvariantCulture),
                            OrderType            = o.Side.ToString()
                        })
                    }
                }
            };

            return(response);
        }
Ejemplo n.º 2
0
        public override async Task <LimitOrdersResponse> GetOrders(LimitOrdersRequest request, ServerCallContext context)
        {
            var token    = context.GetBearerToken();
            var response = await _walletApiV1Client.OffchainLimitListAsync(request.AssetPairId, token);

            var result = new LimitOrdersResponse();

            if (response.Result != null)
            {
                result.Body = new LimitOrdersResponse.Types.Body();
                result.Body.Orders.AddRange(_mapper.Map <List <LimitOrderModel> >(response.Result.Orders));
            }

            if (response.Error != null)
            {
                result.Error = response.Error.ToApiError();
            }

            return(result);
        }