Example #1
0
        static public TradeViewModel Construct(ApplicationUser loggedInUser, ApplicationUser tradeUser, string market, string side, string amount, string price, ExchangeSettings settings)
        {
            var via                = new ViaJsonRpc(settings.AccessHttpUrl);
            var balances           = Utils.GetUsedBalances(settings, via, tradeUser.Exchange);
            var ordersPending      = via.OrdersPendingQuery(tradeUser.Exchange.Id, market, 0, 10);
            var now                = DateTimeOffset.Now.ToUnixTimeSeconds();
            var bidOrdersCompleted = via.OrdersCompletedQuery(tradeUser.Exchange.Id, market, 1, now, 0, 10, OrderSide.Bid);
            var askOrdersCompleted = via.OrdersCompletedQuery(tradeUser.Exchange.Id, market, 1, now, 0, 10, OrderSide.Ask);

            var orderDepth = via.OrderDepthQuery(market, settings.OrderBookLimit, settings.Markets[market].PriceInterval);
            var ob         = new OrderbookPartialViewModel
            {
                AssetSettings = settings.Assets,
                AmountUnit    = settings.Markets[market].AmountUnit,
                PriceUnit     = settings.Markets[market].PriceUnit,
                OrderDepth    = orderDepth
            };

            var model = new TradeViewModel
            {
                User          = loggedInUser,
                Market        = market,
                MarketNice    = string.Format("{0}/{1}", settings.Markets[market].AmountUnit, settings.Markets[market].PriceUnit),
                AssetSettings = settings.Assets,
                Settings      = settings.Markets[market],
                OrderBook     = ob,
                Balances      = new BalancesPartialViewModel {
                    Balances = balances
                },
                OrdersPending = new OrdersPendingPartialViewModel {
                    OrdersPending = ordersPending
                },
                BidOrdersCompleted = bidOrdersCompleted,
                AskOrdersCompleted = askOrdersCompleted,
                Order = new ApiOrderCreateLimit {
                    Market = market, Side = side, Amount = amount, Price = price
                }
            };

            return(model);
        }
Example #2
0
        public IActionResult Orderbook(string market)
        {
            Debug.Assert(market != null);
            //TODO: move this to a ViaRpcProvider in /Services (like IWalletProvider)
            var via        = new ViaJsonRpc(_settings.AccessHttpUrl);
            var orderDepth = via.OrderDepthQuery(market, _settings.OrderBookLimit, _settings.Markets[market].PriceInterval);

            var ob = new OrderbookPartialViewModel
            {
                AssetSettings = _settings.Assets,
                AmountUnit    = _settings.Markets[market].AmountUnit,
                PriceUnit     = _settings.Markets[market].PriceUnit,
                OrderDepth    = orderDepth
            };
            var model = new OrderbookViewModel
            {
                User       = GetUser().Result,
                Market     = market,
                MarketNice = string.Format("{0}/{1}", _settings.Markets[market].AmountUnit, _settings.Markets[market].PriceUnit),
                OrderBook  = ob
            };

            return(View(model));
        }