public ViewResult Checkout(Cart cart, UserViewModel user) { UserViewModel addOrChangeUser = null; OrderModifyModel newOrder = null; if (HttpContext.User.Identity.IsAuthenticated) { addOrChangeUser = _userViewService.ViewAll().FirstOrDefault(c => c.UserEmail == HttpContext.User.Identity.Name); newOrder = CreateOrderForUser(addOrChangeUser.Id, cart); } else { if (ModelState.IsValid) { // check if user exist addOrChangeUser = _userViewService.ViewAll().FirstOrDefault(c => c.UserEmail == user.UserEmail); if (addOrChangeUser != null) { //if user found update adress _userModifyService.Update (addOrChangeUser.Id, new UserModifyModel(user.UserEmail, user.UserPassword, user.UserName, user.UserCountry, user.UserAddress, user.UserRoleId) ); } else { // if user not exist add new user user.UserRoleId = 3; _userModifyService.Add(new UserModifyModel(user.UserEmail, user.UserPassword, user.UserName, user.UserCountry, user.UserAddress, user.UserRoleId)); addOrChangeUser = _userViewService.ViewAll().FirstOrDefault(c => c.UserEmail == user.UserEmail); } newOrder = CreateOrderForUser(addOrChangeUser.Id, cart); } } if (HttpContext.User.Identity.IsAuthenticated || ModelState.IsValid) { _orderModifyService.Add(newOrder); //addOrChangeUser newOrder.User = new UserModifyModel(addOrChangeUser.UserEmail, addOrChangeUser.UserPassword, addOrChangeUser.UserName, addOrChangeUser.UserCountry, addOrChangeUser.UserAddress, addOrChangeUser.UserRoleId) ?? new UserModifyModel(); cart.Clear(); } return(View(newOrder)); }
public ActionResult Edit(OrderViewModel order) { if (ModelState.IsValid) { OrderViewModel foundOrder = _orderViewService.ViewSingle(order.Id); if (foundOrder != null) { _orderModifyService.Update(order.Id, new OrderModifyModel(order.OrderDate, order.OrderNumber, order.UserId, order.OrderTypeId, order.OrderAmount)); TempData["message"] = string.Format("Order \"{0}\"uploaded", order.OrderNumber); } else { _orderModifyService.Add(new OrderModifyModel(order.OrderDate, order.OrderNumber, order.UserId, order.OrderTypeId, order.OrderAmount)); TempData["message"] = string.Format("Order\"{0}\"added", order.OrderNumber); } return(RedirectToAction("Index")); } else { return(View(order)); } }