public IActionResult CreateOrder(NewOrderWrapper postData) { if (!CheckUser()) { return(RedirectToAction("Login", "User")); } if (ModelState.IsValid) { Product prod = _db.Products .SingleOrDefault(p => p.ProductId == postData.Form.ProductId); if (postData.Form.Quantity <= prod.Quantity) { postData.Form.UserId = HttpContext.Session.Get <User>("user").UserId; _db.Add(postData.Form); prod.Quantity -= postData.Form.Quantity; prod.UpdatedAt = DateTime.Now; _db.SaveChanges(); return(RedirectToAction("Orders")); } ModelState.AddModelError("Form.Quantity", "Not enough product in stock."); } return(NewOrder(postData.Form.ProductId)); }
public void RunTestsThread() { try { while (true) { lock (TimeoutOrders) { //1- Ok order DoLog(string.Format("Sending full regular order @{0}", Configuration.Name), Constants.MessageType.Information); Order fullOrder = OrderBuilder.BuildFullOrder(); NewOrderWrapper fullOrderWrapper = new NewOrderWrapper(fullOrder, Configuration); MessageOk.Add(fullOrder.ClOrdId, fullOrder); TimeoutOrders.Add(fullOrder.ClOrdId, DateTime.Now); ExecutionReportsReceived.Add(fullOrder.ClOrdId, 0); DoPublishMessage(fullOrderWrapper); } Thread.Sleep(2000); } } catch (Exception ex) { DoLog(string.Format("{0}-Critical error running tests:{1}", Configuration.Name, ex.Message), Constants.MessageType.Error); } }
public void RunTestsThread() { try { //1- Ok order DoLog(string.Format("Sending full regular order @{0}", Configuration.Name), Constants.MessageType.Information); Order fullOrder = OrderBuilder.BuildFullOrder(); NewOrderWrapper fullOrderWrapper = new NewOrderWrapper(fullOrder, Configuration); MessageOk.Add(fullOrder.ClOrdId, fullOrder); TimeoutOrders.Add(fullOrder.ClOrdId, DateTime.Now); DoPublishMessage(fullOrderWrapper); //2- Missing Mandatory tag test DoLog(string.Format("Sending missing tag order @{0}", Configuration.Name), Constants.MessageType.Information); Order missingTagOrder = OrderBuilder.BuildOrderMissingAccount(); NewOrderWrapper missingTagOrderWrapper = new NewOrderWrapper(missingTagOrder, Configuration); MissingTags.Add(missingTagOrder.ClOrdId, "1");//ClOrdId TimeoutOrders.Add(missingTagOrder.ClOrdId, DateTime.Now); DoPublishMessage(missingTagOrderWrapper); //3- Invalid Value tag test DoLog(string.Format("Sending invalid tag value @{0}", Configuration.Name), Constants.MessageType.Information); Order invalidValueOrder = OrderBuilder.BuildFullOrder(); invalidValueOrder.Side = Side.BuyToClose; NewOrderWrapper invalidValueOrderWrapper = new NewOrderWrapper(invalidValueOrder, Configuration); MissingTags.Add(invalidValueOrder.ClOrdId, "54");//Side TimeoutOrders.Add(invalidValueOrder.ClOrdId, DateTime.Now); DoPublishMessage(invalidValueOrderWrapper); } catch (Exception ex) { DoLog(string.Format("{0}-Critical error running tests:{1}", Configuration.Name, ex.Message), Constants.MessageType.Error); } }
public void RunTestsThread() { try { //1- Send orders and get ready to validate counters DoLog(string.Format("Sending full regular order @{0}", Configuration.Name), Constants.MessageType.Information); Order fullOrder1 = OrderBuilder.BuildFullOrder(); NewOrderWrapper fullOrderWrapper = new NewOrderWrapper(fullOrder1, Configuration); OrdersSent.Add(fullOrder1.ClOrdId, fullOrder1); TimeoutOrders.Add(fullOrder1.ClOrdId, DateTime.Now); DoPublishMessage(fullOrderWrapper); Order fullOrder2 = OrderBuilder.BuildFullOrder(); NewOrderWrapper fullOrderWrapper2 = new NewOrderWrapper(fullOrder2, Configuration); OrdersSent.Add(fullOrder2.ClOrdId, fullOrder1); TimeoutOrders.Add(fullOrder2.ClOrdId, DateTime.Now); DoPublishMessage(fullOrderWrapper2); Order fullOrder3 = OrderBuilder.BuildFullOrder(); NewOrderWrapper fullOrderWrapper3 = new NewOrderWrapper(fullOrder3, Configuration); OrdersSent.Add(fullOrder3.ClOrdId, fullOrder3); TimeoutOrders.Add(fullOrder3.ClOrdId, DateTime.Now); DoPublishMessage(fullOrderWrapper3); } catch (Exception ex) { DoLog(string.Format("{0}-Critical error running tests:{1}", Configuration.Name, ex.Message), Constants.MessageType.Error); } }
public IActionResult NewOrder(int productId) { if (!CheckUser()) { return(RedirectToAction("Login", "User")); } NewOrderWrapper data = new NewOrderWrapper(); data.Form = new Order(); data.Form.ProductId = productId; data.CurrentProduct = _db.Products .SingleOrDefault(p => p.ProductId == productId); return(View("NewOrder", data)); }
public void RunTestsThread() { try { while (true) { //1- Send orders and get ready to validate counters DoLog(string.Format("Sending full regular order @{0}", Configuration.Name), Constants.MessageType.Information); Order fullOrder1 = OrderBuilder.BuildFullOrder(); NewOrderWrapper fullOrderWrapper = new NewOrderWrapper(fullOrder1, Configuration); OrdersSent.Add(fullOrder1.ClOrdId, fullOrder1); TimeoutOrders.Add(fullOrder1.ClOrdId, DateTime.Now); LastProcessedCounter.Add(fullOrder1.ClOrdId, 0); DoPublishMessage(fullOrderWrapper); Thread.Sleep(1000 * Configuration.PauseBetweenOrdersInSeconds);//1 second } } catch (Exception ex) { DoLog(string.Format("{0}-Critical error running tests:{1}", Configuration.Name, ex.Message), Constants.MessageType.Error); } }