public void UpdatePrice() { Random rnd = new Random(); External_DatabaseEntities db = new External_DatabaseEntities(); foreach (var item in db.StockDatas) { int sign = rnd.Next(1, 3); switch (sign) { case 1: item.MarketPrice += rnd.Next(1, 20); break; case 2: if (item.MarketPrice > 20) { item.MarketPrice -= rnd.Next(1, 20); } break; default: item.MarketPrice += rnd.Next(1, 20); break; } } db.SaveChanges(); }
public void UpdateServiceRequestSell(long traderID, long blockID, long qty) { External_DatabaseEntities db = new External_DatabaseEntities(); var query = from order in db.ServiceRequests where order.TraderID == traderID && order.BlockID == blockID select order; String symbol = ""; foreach (ServiceRequest order in query) { order.QtyAllocated += qty; symbol = order.Symbol; } try { db.SaveChanges(); UpdatePartialFilled(traderID, blockID, symbol); } catch (Exception e) { Console.WriteLine(e); } }
public Boolean EnterRequestToDatabase(Request request) { try { External_DatabaseEntities db = new External_DatabaseEntities(); ServiceRequest requestdp = new ServiceRequest(); //requestdp = request; //requestdp.StatusID = db.Status.Where(x => x.StatusName == "Filled").Select(x => x.StatusID).First(); //requestdp.Symbol = db.StockDatas.Where(x => x.Symbol == "RIL").Select(x => x.Symbol).First(); //requestdp.Side = "Sell"; //requestdp.Type = "Market"; requestdp = ConvertRequest(request); //requestdp.TimeStamp = DateTime.Today.ToUniversalTime(); requestdp.TimeStamp = DateTime.Now; requestdp.Status = db.Status.First(c => c.StatusID == 2); requestdp.StockData = db.StockDatas.First(c => c.Symbol == request.Symbol); //List<Status> status = Convert.ToDouble(list.Where(s => s.StatusID == symbol).Select(s => s.MarketPrice)); db.ServiceRequests.Add(requestdp); db.SaveChanges(); } catch (Exception e) { return(false); } return(true); }
public void UpdatePartialFilled(long traderID, long blockID, String symbol) { External_DatabaseEntities db = new External_DatabaseEntities(); try { var queryService = from ord1 in db.ServiceRequests where (ord1.QtyRequested > ord1.QtyAllocated) && (ord1.Side == "Buy") && (ord1.Symbol == symbol) select ord1; var queryStock = from ord2 in db.StockDatas where ord2.Symbol == symbol select ord2; long availableQuantity = 0; long addedQuantity = 0; var order2 = queryService.First(); var order1 = queryStock.First(); //foreach (ServiceRequest order2 in queryService) //{ // foreach (StockData order1 in queryStock) // { availableQuantity = order1.QuantityAvailable; if (availableQuantity > (order2.QtyRequested - order2.QtyAllocated)) { addedQuantity = order2.QtyRequested - order2.QtyAllocated; order2.QtyAllocated = order2.QtyRequested; order1.QuantityAvailable -= addedQuantity; } else { addedQuantity = availableQuantity; order2.QtyAllocated += availableQuantity; order1.QuantityAvailable -= addedQuantity; } // } //} db.SaveChanges(); } catch (Exception e) { Console.WriteLine(e); } // and send the response to the trader service based on their trader ID But in this itteration Internal(Trader Team) is not accepting excecuted table. }
public void CreateTransaction(Transaction T) { External_DatabaseEntities db = new External_DatabaseEntities(); T.Status = db.Status.First(c => c.StatusID == T.StatusID); T.StockData = db.StockDatas.First(c => c.Symbol == T.Symbol); db.Transactions.Add(T); db.SaveChanges(); }
//public List<Double> ExchangeBuy(String // symbol, long qty) //{ // External_DatabaseEntities db = new External_DatabaseEntities(); // var list = db.StockDatas.ToList(); // double price = Convert.ToDouble(list.Where(s => s.Symbol == symbol).Select(s => s.MarketPrice)); // double quantity = Convert.ToDouble(list.Where(s => s.Symbol == symbol).Select(s => s.QuantityAvailable)); // List<Double> listSend=new List<double>(); // listSend[0] = price; // listSend[1] = quantity; // return listSend; //} public long ExchangeBuy(String symbol, long qty) { External_DatabaseEntities db = new External_DatabaseEntities(); long alloted = 0; var query = from ord in db.StockDatas where ord.Symbol == symbol select ord; //StockData order = new StockData(); foreach (StockData order in query) { if (qty > order.QuantityAvailable) { alloted = order.QuantityAvailable; order.QuantityAvailable = 0; } else { alloted = qty; order.QuantityAvailable -= qty; } } try { db.SaveChanges(); } catch (Exception e) { Console.WriteLine(e); } return(alloted); }
public void UpdateServiceRequestBuy(long traderID, long blockID, long qty) { External_DatabaseEntities db = new External_DatabaseEntities(); var query = from order in db.ServiceRequests where order.TraderID == traderID && order.BlockID == blockID select order; foreach (ServiceRequest order in query) { order.QtyAllocated += qty; } try { db.SaveChanges(); } catch (Exception e) { Console.WriteLine(e); } }
//public void ExchangeSell(String symbol,long qty) //{ // External_DatabaseEntities db = new External_DatabaseEntities(); // var list = db.StockDatas.ToList(); // double price = Convert.ToInt32(list.Where(s => s.Symbol == symbol).Select(s => s.MarketPrice)); // //return price; //} public void ExchangeSell(String symbol, long qty) { External_DatabaseEntities db = new External_DatabaseEntities(); var query = from ord in db.StockDatas where ord.Symbol == symbol select ord; foreach (StockData ord in query) { ord.QuantityAvailable += (int)qty; } try { db.SaveChanges(); } catch (Exception e) { Console.WriteLine(e); } }