private async Task HandleBuyReceiptAsync(KyubeyContext db, ActionDataWrap data, DateTime time) { try { var token = data.data.ask.Split(' ')[1]; var order = await db.DexBuyOrders.SingleOrDefaultAsync(x => x.Id == data.data.id && x.TokenId == token); if (order != null) { db.DexBuyOrders.Remove(order); await db.SaveChangesAsync(); } order = new DexBuyOrder { Id = data.data.id, Account = data.data.account, Ask = Convert.ToDouble(data.data.ask.Split(' ')[0]), Bid = Convert.ToDouble(data.data.bid.Split(' ')[0]), UnitPrice = data.data.unit_price / 10000.0, Time = time, TokenId = token }; db.DexBuyOrders.Add(order); await db.SaveChangesAsync(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
private async Task HandleCancelBuyAsync(KyubeyContext db, ActionDataWrap data, DateTime time) { try { var order = await db.DexBuyOrders.SingleOrDefaultAsync(x => x.Id == data.id && x.TokenId == data.symbol); if (order != null) { db.DexBuyOrders.Remove(order); await db.SaveChangesAsync(); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
private async Task HandleBuyMatchAsync(KyubeyContext db, ActionDataWrap data, DateTime time) { try { var token = data.data.ask.Split(' ')[1]; var bid = Convert.ToDouble(data.data.bid.Split(' ')[0]); var ask = Convert.ToDouble(data.data.ask.Split(' ')[0]); var order = await db.DexSellOrders.SingleOrDefaultAsync(x => x.Id == data.data.id && x.TokenId == token); if (order != null) { order.Bid -= bid; order.Ask -= ask; if (order.Ask <= 0 || order.Bid <= 0) { db.DexSellOrders.Remove(order); } await db.SaveChangesAsync(); } db.MatchReceipts.Add(new MatchReceipt { Ask = ask, Bid = bid, Asker = data.data.asker, Bidder = data.data.bidder, Time = time, TokenId = token, UnitPrice = data.data.unit_price / 10000.0 }); await db.SaveChangesAsync(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }