public async Task <ActionResult> AddOrder(AddEditOrderViewModel model) { model.LoggedInUser = await userService.GetCurrentUser(); model.FullNavList = CreateUserControllerAdminNavList(); if (ModelState.IsValid == false) { return(View(model)); } model.Order.AppUser = (String.IsNullOrEmpty(model.UserID)) ? userService.GetUserByNickname(model.UserNickName) : await userService.GetUserByID(model.UserID); model.ClaimedProductKey.AppUser = model.Order.AppUser; model.ClaimedProductKey.Date = DateTime.Now; if (!model.UseDBKey) { model.ProductOrderEntry.AddClaimedProductKey(model.ClaimedProductKey); } model.Order.ProductOrderEntries = new List <ProductOrderEntry>() { model.ProductOrderEntry }; await userService.CreateOrder(model.Order, model.AlreadyCharged, model.UseDBKey); return(RedirectToAction("AdminOrders")); }
public void AddOrderFromOrderVMTest() { AddEditOrderViewModel addEditOrderViewModel = new AddEditOrderViewModel(); addEditOrderViewModel.CurrentViewMode = ViewMode.AddMode; addEditOrderViewModel.CurrentCustomer = CustomerModel.CustomerToCustomerModel(cust); addEditOrderViewModel.CurrentCustomerOrder = OrderModel.OrderToOrderModel(ord); addEditOrderViewModel.CurrentCustomerOrder.Quantity.DataValue = 1; AddEditCustomerViewModel addEditCustomerViewModel = new AddEditCustomerViewModel(); addEditCustomerViewModel.CurrentCustomer = CustomerModel.CustomerToCustomerModel(cust); //As setting the AddEditCustomerViewModel.CurrentCustomer causes //a background fetch of all CurrentCustomer.Orders, we need to wait //until that completes to continue ManualResetEvent manualEvent = new ManualResetEvent(false); addEditCustomerViewModel.BgWorker.BackgroundTaskCompleted += delegate(object sender, EventArgs args) { // Signal the waiting NUnit thread that we're ready to move on. manualEvent.Set(); }; //Wait for signal to move on from BackgroundTaskManager.BackgroundTaskCompleted manualEvent.WaitOne(5000, false); //Execute AddEditOrderViewModel.SaveOrderCommand addEditOrderViewModel.SaveOrderCommand.Execute(null); Int32 currentCustomerOrderCount = addEditCustomerViewModel.CurrentCustomer.Orders.Count; //Wait for Lazy load of AddEditCustomerViewModel.CurrentCustomer.Orders //which is triggered via Mediator, and is run on the AddEditCustomerViewModel //BackgroundTaskManager manualEvent = new ManualResetEvent(false); addEditCustomerViewModel.BgWorker.BackgroundTaskCompleted += delegate(object sender, EventArgs args) { // Signal the waiting NUnit thread that we're ready to move on. manualEvent.Set(); }; //Wait for signal to move on from BackgroundTaskManager.BackgroundTaskCompleted manualEvent.WaitOne(5000, false); Assert.AreEqual(currentCustomerOrderCount + 1, addEditCustomerViewModel.CurrentCustomer.Orders.Count); }
public async Task <ActionResult> EditOrder(int id) { AddEditOrderViewModel model = new AddEditOrderViewModel(); model.Order = userService.GetOrderByID(id); model.UserID = model.Order.AppUser.Id; model.LoggedInUser = await userService.GetCurrentUser(); model.FullNavList = CreateUserControllerAdminNavList(); return(View(model)); }
public async Task <ActionResult> AddOrder(string id = null) { AddEditOrderViewModel model = new AddEditOrderViewModel(); model.LoggedInUser = await userService.GetCurrentUser(); model.FullNavList = CreateUserControllerAdminNavList(); model.Order = new Order(); model.UserID = id; return(View(model)); }
public async Task <ActionResult> EditOrder(AddEditOrderViewModel model) { model.LoggedInUser = await userService.GetCurrentUser(); model.FullNavList = CreateUserControllerAdminNavList(); if (ModelState.IsValid == false) { return(View(model)); } userService.EditOrder(model.Order); return(RedirectToAction("AdminOrders")); }
public void SaveOrderCommandTest() { AddEditOrderViewModel addEditOrderViewModel = new AddEditOrderViewModel(); //Test Command can't run without an order Assert.AreEqual(addEditOrderViewModel.SaveOrderCommand.CanExecute(null), false); #region AddMode addEditOrderViewModel.CurrentViewMode = ViewMode.AddMode; addEditOrderViewModel.CurrentCustomer = CustomerModel.CustomerToCustomerModel(cust); addEditOrderViewModel.CurrentCustomerOrder = OrderModel.OrderToOrderModel(ord); //test Save Command can run Assert.AreEqual(addEditOrderViewModel.SaveOrderCommand.CanExecute(null), true); //Execute SaveCommand addEditOrderViewModel.SaveOrderCommand.Execute(null); Assert.Greater(addEditOrderViewModel.CurrentCustomerOrder.OrderId.DataValue, 0); #endregion #region EditMode addEditOrderViewModel.CurrentViewMode = ViewMode.EditMode; addEditOrderViewModel.CurrentCustomer = CustomerModel.CustomerToCustomerModel(cust); Order o = DataAccess.DataService.FetchAllOrders(cust.CustomerId).First(); addEditOrderViewModel.CurrentCustomerOrder = OrderModel.OrderToOrderModel(o); //test Save Command can run Assert.AreEqual(addEditOrderViewModel.SaveOrderCommand.CanExecute(null), true); //Execute SaveCommand addEditOrderViewModel.SaveOrderCommand.Execute(null); Assert.AreEqual(addEditOrderViewModel.SaveOrderCommand.CommandSucceeded, true); #endregion }
public void CancelOrderCommandTest() { AddEditOrderViewModel addEditOrderViewModel = new AddEditOrderViewModel(); //test the edit command first, which allows us to put //order into edit mode EditOrderCommandTest(addEditOrderViewModel); //so now make an edit to the order, say change Quantity Int32 editQty = 9999; ord.Quantity = editQty; #region CancelOrderCommandTests //check that CancelOrderCommand can't run until its in correct mode addEditOrderViewModel.CurrentViewMode = ViewMode.ViewOnlyMode; Assert.AreEqual(addEditOrderViewModel.CancelOrderCommand.CanExecute(null), false); //now allow the CancelOrderCommand to run by placing it in the correct mode addEditOrderViewModel.CurrentViewMode = ViewMode.EditMode; Assert.AreEqual(addEditOrderViewModel.CancelOrderCommand.CanExecute(null), true); //execute the CancelOrderCommand addEditOrderViewModel.CancelOrderCommand.Execute(null); Assert.AreNotEqual(addEditOrderViewModel.CurrentCustomerOrder.Quantity.DataValue, editQty); Assert.AreEqual(addEditOrderViewModel.CancelOrderCommand.CommandSucceeded, true); //Test that CancelOrderCommand can not execute with out a current order addEditOrderViewModel.CurrentCustomerOrder = null; Assert.AreEqual(addEditOrderViewModel.CancelOrderCommand.CanExecute(null), false); #endregion }
public void EditOrderCommandTest(AddEditOrderViewModel addEditOrderViewModel) { //Test that EditOrderCommand can not execute with no current order addEditOrderViewModel.CurrentCustomerOrder = null; Assert.AreEqual(addEditOrderViewModel.EditOrderCommand.CanExecute(null), false); //now give it an order, and check that EditOrderCommand can't run until its in correct mode addEditOrderViewModel.CurrentCustomerOrder = OrderModel.OrderToOrderModel(ord); addEditOrderViewModel.CurrentViewMode = ViewMode.EditMode; Assert.AreEqual(addEditOrderViewModel.EditOrderCommand.CanExecute(null), false); //now allow the EditOrderCommand to run by placing it in the correct mode addEditOrderViewModel.CurrentViewMode = ViewMode.ViewOnlyMode; Assert.AreEqual(addEditOrderViewModel.EditOrderCommand.CanExecute(null), true); //execute the EditOrderCommand addEditOrderViewModel.EditOrderCommand.Execute(null); Assert.AreEqual(addEditOrderViewModel.CurrentViewMode, ViewMode.EditMode); Assert.AreEqual(addEditOrderViewModel.EditOrderCommand.CommandSucceeded, true); }