public ExchangeOrderBookUpdatedIntegrationEvent(int exchangeId, string baseCurrency, string quoteCurrency, OrderBookViewModel orderBook) { ExchangeId = exchangeId; BaseCurrency = baseCurrency; QuoteCurrency = quoteCurrency; OrderBook = orderBook; }
public async Task <IActionResult> GetAsync() { try { //log.Debug("1 OrdersController I am here! "); //System.Diagnostics.Trace.TraceError("2 OrdersController I am here!"); // Send the event: this.telemetry.TrackTrace("GET api/orders"); var asks = await this.orderBook.GetAsksAsync(); var bids = await this.orderBook.GetBidsAsync(); var asksCount = asks.Count; var bidsCount = bids.Count; var view = new OrderBookViewModel { CurrencyPair = orderBook.PartitionName, Asks = asks, Bids = bids, AsksCount = asksCount, BidsCount = bidsCount, }; return(this.Json(view)); } catch (FabricException) { return(new ContentResult { StatusCode = 503, Content = "The service was unable to process the request. Please try again." }); } }
public async Task <IActionResult> GetAsync() { try { var asks = await this.orderBook.GetAsksAsync(); var bids = await this.orderBook.GetBidsAsync(); var asksCount = asks.Count; var bidsCount = bids.Count; var view = new OrderBookViewModel { CurrencyPair = orderBook.PartitionName, Asks = asks, Bids = bids, AsksCount = asksCount, BidsCount = bidsCount, }; return(this.Json(view)); } catch (FabricException) { return(new ContentResult { StatusCode = 503, Content = "The service was unable to process the request. Please try again." }); } }
public OrderBookViewModel GetOrderedBook(int bookId, string bookTitle) { var book = this.Data.Books .All() .First(b => b.Id == bookId); var viewModel = new OrderBookViewModel { Book = book }; return(viewModel); }
public ActionResult CreateAndEdit(OrderBookViewModel ordersBooksModel) { var orderBO = mapper.Map <OrderBookBO>(ordersBooksModel); if (ModelState.IsValid) { orderBO.Save(); return(RedirectToActionPermanent("Index", "OrdersBooks")); } else { return(View(ordersBooksModel)); } }
public ActionResult Buy(OrderBookViewModel viewModel) { if (!this.ModelState.IsValid) { this.Redirect($"Books/Details/{viewModel.BookId}/{viewModel.Book.Title}"); } var order = this.orderService.CreateOrder(viewModel); var userId = this.User.Identity.GetUserId(); order.UserId = userId; this.orderService.PersistOrder(order, userId); return(this.RedirectToAction <OrdersController>(c => c.MyOrders())); }
public ExchangeViewModel(MainViewModel mainViewModel, ExchangeBase exchangeBase) : base(exchangeBase) { Pairs = new PairManageViewModel(exchangeBase); this.MainViewModel = mainViewModel; this.Header = Exchange.Name; //this.Foreground = Brushes.DodgerBlue; MainViewModel.TimerSeconds.Tick += TimerSecondsOnTick; Orders = new UserOrdersViewModel(Exchange); Ticker = new TickerViewModel(Exchange); OrderBook = new OrderBookViewModel(Exchange); Trades = new TradesViewModel(MainViewModel, this, Exchange); Balance = new BalanceViewModel(Exchange); NewBuyOrder = new NewOrderViewModel(Exchange) { Side = OrderSide.Buy }; NewSellOrder = new NewOrderViewModel(Exchange) { Side = OrderSide.Sell }; if (!DesignerProperties.GetIsInDesignMode(new DependencyObject())) { UpdatePair(); //Exchange.ExchangeManager.Settings. MainViewModel.SettingsService.SettingsLoaded += SettingsServiceOnSettingsLoaded; Pairs.PairChanged += PairsOnPairChanged; OrderBook.Ticker.LastTradeClickEvent += TickerOnLastTradeClickEvent; OrderBook.SelectedAskChanged += OrderBookOnSelectedAskChanged; OrderBook.SelectedBidChanged += OrderBookOnSelectedBidChanged; Balance.SelectedBalanceChanged += BalanceOnSelectedBalanceChanged; CreateTimer(); UpdateViewModels(); RegisterUpdates(); Ticker.Dispatched += TickerOnDispatched; } }
public async Task <IActionResult> Book(int id) { IdentityUser user = await _userManagerService.FindByNameAsync(User.Identity.Name); Package package = _packageDataService.GetSingle(p => p.PackageId == id); // Order order = _orderDataService.GetSingle(o => o.OrderId == id); OrderBookViewModel vm = new OrderBookViewModel { UserId = user.Id, OrderDate = DateTime.Now, PackagId = package.PackageId, PackDescription = package.PackDescription, PackImage = package.PackImage, PackName = package.PackName, PackPrice = package.PackPrice, PackLocation = package.PackLocation }; return(View(vm)); }
public async Task <IActionResult> Book(OrderBookViewModel vm) { IdentityUser user = await _userManagerService.FindByNameAsync(User.Identity.Name); //Package package = _packageDataService.GetSingle(p => p.PackageId == id); // Order ord = _orderDataService.GetSingle(o => o.OrderId == id); if (ModelState.IsValid) { Order order = new Order { UserId = user.Id, Status = "confirmed", Price = vm.PackPrice, Date = DateTime.Now, PackagId = vm.PackagId, }; _orderDataService.Create(order); return(RedirectToAction("Add", "Feedback", new { id = vm.PackagId })); } return(View(vm)); }
public Order CreateOrder(OrderBookViewModel viewModel) { var order = Mapper.Map <OrderBookViewModel, Order>(viewModel); return(order); }
public OrderBookViewModel GetMarketData(string exchangeId, string baseCurrency, string quoteCurrency) { var orderBook = new OrderBookViewModel(); if (exchangeId == "0") { var marketKey = (baseCurrency + quoteCurrency).ToUpper(); MarketData marketData = null; if (!this._bittrex.TryGetValue(marketKey, out marketData)) { throw new NullReferenceException($"Bittrex market data \"{baseCurrency}-{quoteCurrency}\" is still initializing."); } orderBook.asks = marketData.OrderBook.asks.ToList(); orderBook.bids = marketData.OrderBook.bids.ToList(); return(orderBook); } else if (exchangeId == "1") { var marketKey = (baseCurrency + quoteCurrency).ToUpper(); MarketData marketData = null; if (!this._binance.TryGetValue(marketKey, out marketData)) { throw new NullReferenceException($"Binance market data \"{baseCurrency}-{quoteCurrency}\" is still initializing."); } orderBook.asks = marketData.OrderBook.asks.ToList(); orderBook.bids = marketData.OrderBook.bids.ToList(); return(orderBook); } else if (exchangeId == "3") { var marketKey = (baseCurrency + quoteCurrency).ToUpper(); MarketData marketData = null; if (!this._bitstamp.TryGetValue(marketKey, out marketData)) { throw new NullReferenceException($"Bitstamp market data \"{baseCurrency}-{quoteCurrency}\" is still initializing."); } orderBook.asks = marketData.OrderBook.asks.ToList(); orderBook.bids = marketData.OrderBook.bids.ToList(); return(orderBook); } else if (exchangeId == "4") { var marketKey = (baseCurrency + quoteCurrency).ToUpper(); MarketData marketData = null; if (!this._poloniex.TryGetValue(marketKey, out marketData)) { throw new NullReferenceException($"Poloniex market data \"{baseCurrency}-{quoteCurrency}\" is still initializing."); } orderBook.asks = marketData.OrderBook.asks.ToList(); orderBook.bids = marketData.OrderBook.bids.ToList(); return(orderBook); } else if (exchangeId == "5") { var marketKey = (baseCurrency + quoteCurrency).ToUpper(); MarketData marketData = null; if (!this._kucoin.TryGetValue(marketKey, out marketData)) { throw new NullReferenceException($"Kucoin market data \"{baseCurrency}-{quoteCurrency}\" is still initializing."); } orderBook.asks = marketData.OrderBook.asks.ToList(); orderBook.bids = marketData.OrderBook.bids.ToList(); return(orderBook); } throw new KeyNotFoundException("Exchange Not Found"); }
public static OrderBookViewModel GetOrderBookResponse(string exchangeId, string formObject) { JObject jsonResult = JObject.Parse(formObject); OrderBookViewModel orderBook = null; var asksList = new List <OrderPriceAndQuantityViewModel>(); var bidsList = new List <OrderPriceAndQuantityViewModel>(); if (exchangeId == "0") { var bidsJson = jsonResult["result"]["buy"]; var asksJson = jsonResult["result"]["sell"]; //Alternate Property Name. var jsonResolver = new PropertyRenameAndIgnoreSerializerContractResolver(); jsonResolver.RenameProperty(typeof(OrderPriceAndQuantityViewModel), "price", "rate"); var serializerSettings = new JsonSerializerSettings(); serializerSettings.ContractResolver = jsonResolver; asksList = JsonConvert.DeserializeObject <List <OrderPriceAndQuantityViewModel> >(asksJson.ToString(), serializerSettings); bidsList = JsonConvert.DeserializeObject <List <OrderPriceAndQuantityViewModel> >(bidsJson.ToString(), serializerSettings); } else if (exchangeId == "1") { var bidsJson = jsonResult["bids"]; var asksJson = jsonResult["asks"]; foreach (var order in asksJson) { asksList.Add( new OrderPriceAndQuantityViewModel { price = Decimal.Parse(order[0].ToString()), quantity = Decimal.Parse(order[1].ToString()) } ); } foreach (var order in bidsJson) { bidsList.Add( new OrderPriceAndQuantityViewModel { price = Decimal.Parse(order[0].ToString()), quantity = Decimal.Parse(order[1].ToString()) } ); } } else if (exchangeId == "2") { var data = jsonResult["result"].First.First; var bidsJson = data["bids"]; var asksJson = data["asks"]; foreach (var order in asksJson) { asksList.Add( new OrderPriceAndQuantityViewModel { price = Decimal.Parse(order[0].ToString()), quantity = Decimal.Parse(order[1].ToString()) } ); } foreach (var order in bidsJson) { bidsList.Add( new OrderPriceAndQuantityViewModel { price = Decimal.Parse(order[0].ToString()), quantity = Decimal.Parse(order[1].ToString()) } ); } } else if (exchangeId == "3") { var bidsJson = jsonResult["bids"]; var asksJson = jsonResult["asks"]; foreach (var order in asksJson) { asksList.Add( new OrderPriceAndQuantityViewModel { price = Decimal.Parse(order[0].ToString()), quantity = Decimal.Parse(order[1].ToString()) } ); if (asksList.Count >= 100) { break; } } foreach (var order in bidsJson) { bidsList.Add( new OrderPriceAndQuantityViewModel { price = Decimal.Parse(order[0].ToString()), quantity = Decimal.Parse(order[1].ToString()) } ); if (bidsList.Count >= 100) { break; } } } orderBook = new OrderBookViewModel { bids = bidsList, asks = asksList }; return(orderBook); }