예제 #1
0
        public override Task <ResultMessage> Process(ProcessorContext context)
        {
            var quantum        = (RequestQuantum)context.Envelope.Message;
            var requestMessage = quantum.RequestMessage;

            context.UpdateNonce();

            var accountEffects = context.EffectProcessors.GetEffects(requestMessage.Account).ToList();

            var account = requestMessage.AccountWrapper.Account;

            var resultMessage = (AccountDataResponse)context.Envelope.CreateResult(ResultStatusCodes.Success, accountEffects);

            resultMessage.Balances = account.Balances
                                     .Select(balance => new Balance {
                Amount = balance.Amount, Asset = balance.Asset, Liabilities = balance.Liabilities
            })
                                     .OrderBy(balance => balance.Asset)
                                     .ToList();

            //TODO: create property in Account object
            resultMessage.Orders = Global.Exchange.OrderMap.GetAllAccountOrders(requestMessage.AccountWrapper)
                                   .Select(order => new Order {
                AccountWrapper = order.AccountWrapper, Amount = order.Amount, QuoteAmount = order.QuoteAmount, Price = order.Price, OrderId = order.OrderId
            })
                                   .OrderBy(order => order.OrderId)
                                   .ToList();

            return(Task.FromResult((ResultMessage)resultMessage));
        }
        public override Task <ResultMessage> Process(ProcessorContext context)
        {
            var quantum        = (RequestQuantum)context.Envelope.Message;
            var requestMessage = quantum.RequestMessage;

            context.UpdateNonce();

            context.CentaurusContext.Exchange.ExecuteOrder(context.EffectProcessors);

            var accountEffects = context.EffectProcessors.GetEffects(requestMessage.Account).ToList();

            return(Task.FromResult(context.Envelope.CreateResult(ResultStatusCodes.Success, accountEffects)));
        }