public ActionResult Add(AddNewOrderViewModel model) { Argument.ExpectNotNull(() => model); if (ModelState.IsValid) { var itemId = new OrderItemId(ServiceLocator.IdentityGenerator.GenerateNewId()); var cmd = new AddProductToOrder( model.OrderId, itemId, new Uri(model.ProductUrl), model.Name, model.Description, model.Price.Value, model.Quantity.Value, model.Size, model.Color, String.IsNullOrEmpty(model.ImageUrl) ? null : new Uri(model.ImageUrl)); _bus.Send(cmd); //TODO: figure out how to avoid this Thread.Sleep(100); return RedirectToAction("Add"); } return View(model); }
public ActionResult Add() { OrderId activeOrderId = _readModel.GetUserActiveOrderId(UserId); UserDetails userDetails = _readModel.GetUserDetails(UserId); if (activeOrderId == null) { activeOrderId = new OrderId(ServiceLocator.IdentityGenerator.GenerateNewId()); _bus.Send(new CreateNewOrder(activeOrderId, UserId)); } var model = new AddNewOrderViewModel(activeOrderId, userDetails.Email); return View(model); }
public ActionResult Submit(AddNewOrderViewModel model) { if (ModelState.IsValid) { if (model.IsEmailChanged) { _bus.Send(new SetUserEmail(UserId, new EmailAddress(model.Email))); Thread.Sleep(200); } _bus.Send(new SubmitOrder(model.OrderId)); return RedirectToAction("Submitted", new { id = model.OrderId.Id }); } return View("Add", model); }