public async Task <ActionResult> Edit(int id, [Bind("OrderId,CreditCardId, MailingAddressId, ShippingAddressId")] WizardsOrder order) { if (ModelState.IsValid) { try { _context.Update(order); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!OrderExists(order.OrderId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["CreditCards"] = new SelectList(_context.CreditCard.Where(c => c.UserId == UserHelper.GetSessionUserId(this)), "CreditCardId", "CreditCardNumber"); ViewData["MailingAddresses"] = new SelectList(_context.Address.Include(a => a.AddressType).Where(a => a.AddressTypeId == 1), "AddressId", "Street1"); ViewData["ShippingAddresses"] = new SelectList(_context.Address.Include(a => a.AddressType).Where(a => a.AddressTypeId == 2), "AddressId", "Street1"); return(View(order)); }
public async void TestEdit_InvalidOrder_ShouldFail(string value) { // Arrange OrdersController controller = new OrdersController(_context); int userId = int.Parse(value); try { // Act WizardsOrder replayOrder = await _context.WizardsOrder .FirstOrDefaultAsync(o => o.UserId == userId); replayOrder.OrderStatusId = 9; var result = await controller.Edit(replayOrder.OrderId, replayOrder); // Assert Assert.IsType <ViewResult>(result); ViewResult viewResult = (ViewResult)result; Assert.NotNull(viewResult.ViewData.ModelState); Assert.NotEmpty(viewResult.ViewData.ModelState.Keys); foreach (string item in viewResult.ViewData.ModelState.Keys) { Assert.Equal("", item); } } catch (Exception ex) { Assert.Equal("System.NullReferenceException", ex.GetType().ToString()); } }
public async Task <ActionResult> Create([Bind("OrderId, UserId, CreditCardId, MailingAddressId, ShippingAddressId, OrderStatusId, Total")] WizardsOrder order) { var sessionUserId = UserHelper.GetSessionUserId(this); if (ModelState.IsValid) { var cart = CartHelper.getCartFromSession(this); order.UserId = (int)sessionUserId; order.OrderStatusId = 1; //Default is processing order.Total = calculateTotal(cart); _context.Add(order); await _context.SaveChangesAsync(); foreach (var item in cart) { // Update order details OrderDetail od = new OrderDetail() { OrderId = order.OrderId, GameId = item.Game.GameId, Quantity = item.Quantity, IsDigital = item.IsDigital }; _context.Add(od); // Update game quantity if (!item.IsDigital) { var game = _context.Game.Find(item.Game.GameId); game.GameQty = (short)(game.GameQty - item.Quantity); _context.Update(game); } } await _context.SaveChangesAsync(); CartHelper.clearCart(this); return(RedirectToAction("Index")); } var cardList = _context.CreditCard.Where(c => c.UserId == sessionUserId); await cardList.ForEachAsync(c => c.CreditCardNumber = Base64Helper.decode(c.CreditCardNumber)); ViewData["UserId"] = sessionUserId; ViewData["CreditCardId"] = new SelectList(cardList, "CreditCardId", "CreditCardNumber"); ViewData["MailingAddressId"] = new SelectList(_context.Address.Include(a => a.AddressType).Where(a => a.AddressTypeId == 1 && a.UserId == sessionUserId), "AddressId", "Street1"); ViewData["ShippingAddressId"] = new SelectList(_context.Address.Include(a => a.AddressType).Where(a => a.AddressTypeId == 2 && a.UserId == sessionUserId), "AddressId", "Street1"); ViewData["OrderStatusId"] = 1; // Default to Processing ViewData["Total"] = calculateTotal(CartHelper.getCartFromSession(this)); return(View(order)); }
private void InitializeOrder() { try { _context.Entry(order).State = EntityState.Detached; } catch (Exception) { // TODO: nothing... } order = new WizardsOrder() { OrderId = 1, UserId = 26, Total = 117m, CreditCardId = 18, MailingAddressId = 20, ShippingAddressId = 21, OrderStatusId = 1 }; }