/// <summary> /// Update an order from the backend /// </summary> /// <param name="model">UserOrderViewModel</param> /// <param name="selectedProduct">List of selected products as strings</param> /// <param name="orderToEdit">Identification of the order to edit</param> /// <returns>Actionresult that should go back to OrderOverview</returns> public IActionResult Update(UserOrderViewModel model, List <string> selectedProduct, int orderToEdit) { var orderToUpdate = orderRepo.RetrieveOrderById(orderToEdit); var itemsToOrder = new List <CartItem>(); //Create cartitems foreach (var item in selectedProduct) { var product = productRepo.RetrieveProductByName(item); var cartItem = new CartItem(1); cartItem.Product = product; cartItem.Quantity = 1; itemsToOrder.Add(cartItem); } //New order to update the old one var newOrder = new Order(orderToUpdate.RetrieveCustomer(), orderToUpdate.OrderDetails, orderToUpdate.RetrieveOrderId(), itemsToOrder); newOrder.SendAddress = model.SendAddress; newOrder.SendPlace = model.SendPlace; newOrder.SendZipcode = model.SendZipcode; if (orderRepo.UpdateOrder(newOrder) == true) { return(RedirectToAction("Overview", "Order")); } return(RedirectToAction("Single", "Order")); }
/// <summary> /// Create order /// </summary> /// <param name="model">UserViewModel</param> /// <param name="selectedProduct">Product</param> /// <returns>IAction</returns> public IActionResult CreateOrderAdmin(UserOrderViewModel model, List <string> selectedProduct) { var selectedUser = userRepo.RetrieveUserByUsername(model.Username); if (selectedUser == null) { RedirectToAction("Dashboard", "Home"); } var itemsToOrder = new List <CartItem>(); //Create cartitems foreach (var item in selectedProduct) { var product = productRepo.RetrieveProductByName(item); var cartItem = new CartItem(1); cartItem.Product = product; cartItem.Quantity = 1; itemsToOrder.Add(cartItem); } if (model.OrderDescription == null) { model.OrderDescription = "No description"; } var order = new Order(selectedUser, model.OrderDescription, 1, itemsToOrder); order.SendAddress = model.SendAddress; order.SendZipcode = model.SendZipcode; order.SendPlace = model.SendPlace; orderRepo.CreateNewOrder(order); return(RedirectToAction("Overview", "Order")); }
public async Task <IActionResult> Index([FromRoute] int userId) { // This is an async function, but "await" is never used // Trying to figure out which part of this call is await-able // and where to do it in the LINQ call // Or does this even need to BE async??? We may never know var productsOnOrder = from ord in context.Order join uid in context.User on ord.UserId equals uid.UserId join op in context.OrderProduct on ord.OrderId equals op.OrderId join prod in context.Product on op.ProductId equals prod.ProductId where ord.UserId == 3 && ord.PaymentTypeId == null && prod.Sold == false select prod; UserOrderViewModel uorder = new UserOrderViewModel(); uorder.Product = productsOnOrder; if (productsOnOrder == null) { // This is where we could build a new ViewModel for when the user's cart is empty // All of the logic for an empty order view will be within this IF block // In pseudo-code,, it might be something like... // EmptyOrderViewModel emptyOrder = new EmptyOrderViewModel(); // emptyOrder.message = "The user's cart is empty!"; // return View(emptyOrder); return(View()); } return(View(uorder)); }
public UserOrderViewModel CheckForLoggedInUserForOrder() { try { var objComplex = HttpContext.Session.GetObjectFromJson <UserViewModel>("ComplexObject"); //Set up automapping var mapper = mapextension.UserViewModelToUserOrderViewModel(); UserOrderViewModel model = mapper.Map <UserOrderViewModel>(objComplex); model.PaymentMethods = new List <PaymentMethodViewModel>(); foreach (Payment p in paymentRepo.RetrieveAllPayments()) { PaymentMethodViewModel pmodel = new PaymentMethodViewModel(); pmodel.PaymentMethodId = p.RetrieveID(); pmodel.PaymentMethodName = p.RetrieveName(); model.PaymentMethods.Add(pmodel); } return(model); } catch (NullReferenceException e) { Console.WriteLine(e.Message); Console.WriteLine("No session set"); } return(null); }
public Order(UserOrderViewModel model) { TradeId = model.OfferId; Volume = model.Volume; BuyerId = model.SelectedContragent; Price = model.Price; }
IEnumerable <UserOrderViewModel> GetAllUserTransactions() { var viewModels = new List <UserOrderViewModel>(); using (FoodOrderEntities db = new FoodOrderEntities()) { var innerjoin = db.Orders.Join( db.Users.Where(x => x.username != "admin"), o => o.userId, u => u.userId, (o, u) => new { username = u.username, transId = o.transId, totalPrice = o.totalPrice, dateTime = o.dateTime }).ToList(); foreach (var item in innerjoin) { UserOrderViewModel viewModel = new UserOrderViewModel { user = new User(), order = new Order() }; viewModel.user.username = item.username; viewModel.order.transId = item.transId; viewModel.order.dateTime = item.dateTime; viewModel.order.totalPrice = item.totalPrice; viewModels.Add(viewModel); } return(viewModels); } }
public IActionResult UserIndex() { var orders = context.Orders .Include(o => o.Cashier) .Include(o => o.Product) .Include(o => o.OrderStatus) .Where(o => o.Cashier.Username == this.Identity.Username && o.OrderStatus.Name == "Active") .ToList(); List <UserOrderViewModel> userOrdersViewModels = new List <UserOrderViewModel>(); decimal total = 0; foreach (Order order in orders) { var userOrderViewModel = new UserOrderViewModel() { Id = order.Id, Name = order.Product.Name, Price = order.Product.Price, Quantity = order.Quantity, }; total += order.Product.Price * order.Quantity; userOrdersViewModels.Add(userOrderViewModel); } this.Model["Orders"] = userOrdersViewModels; this.Model["Total"] = total; return(this.View()); }
/// <summary> /// Opens the single page for an order with data to edit /// </summary> /// <param name="orderToEdit"></param> /// <returns></returns> public IActionResult SingleEdit(int orderToEdit) { var order = orderRepo.RetrieveOrderById(orderToEdit); var mapperOne = mapextension.OrdertoUserOrderViewModel(); UserOrderViewModel model = mapperOne.Map <UserOrderViewModel>(order); model.ShoppingCart = new ShoppingCartViewModel(); model.ShoppingCart.cartId = 1; model.ShoppingCart.ItemsInCart = new List <CartItemViewModel>(); model.ProductsInSystem = new List <ProductOverviewViewModel>(); foreach (var c in order.RetrieveItemsInOrder()) { CartItemViewModel cmodel = new CartItemViewModel(); cmodel.Quantity = c.Quantity; var mapper = mapextension.CartItemToProductViewModel(); ProductViewModel p = mapper.Map <ProductViewModel>(c); cmodel.Product = p; model.ShoppingCart.ItemsInCart.Add(cmodel); } foreach (Product p in productRepo.RetrieveAllProducts()) { ProductOverviewViewModel pmodel = new ProductOverviewViewModel(); pmodel.ProductId = p.RetrieveProductId(); pmodel.ProductName = p.ProductName; model.ProductsInSystem.Add(pmodel); } return(View("SingleOrder", model)); }
public async Task <ActionResult> Order(UserOrderViewModel model) { try { var offer = Db.Trades.Find(model.OfferId); if (offer == null) { logger.Info("Какой-то чмошник что-то чудит"); throw new ArgumentNullException("lot", "Bet must not be empty"); } var user = UserManager.FindById(User.Identity.GetUserId()); tradeDataLayer.CheckOfferOnOrder(user, model, offer); var order = new Order(model); Db.Insert(order, user.Id); offer.Buyers.Add(order.Buyer); Db.UpdateEntity(offer, user.Id); foreach (var u in offer.Orders.GroupBy(c => c.Buyer).SelectMany(f => f.Key.ContragentUsers).ToList()) { await hub.UpdateTradeTable(offer.Id, u.UserName); } foreach (var u in offer.Seller.ContragentUsers.ToList()) { await hub.UpdateTradeTable(offer.Id, u.UserName); EmailFactory.SendEmailAsync(new NewReplyToOffer(u, order)); } return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); } catch (ArgumentOutOfRangeException ex) { logger.Error(ex); return (Json(new { success = false, error = $"{LocalText.Inst.Get("error", "VolumeTooMuch", "Зменшіть об’єм Вашої заявки", "Уменьшите объем Вашей заявки")} {GetFullErrorMessage(ex)}" }, JsonRequestBehavior.AllowGet)); } catch (Exception ex) { logger.Error(ex); return (Json(new { success = false, error = $"{LocalText.Inst.Get("error", "errorBet", "Відбулася помилка", "Произошла ошибка")} {GetFullErrorMessage(ex)}" }, JsonRequestBehavior.AllowGet)); } }
public async Task <IActionResult> Index() { string userId = _userManager.GetUserId(User); var orderItems = await _orderService.GetByUserIdAsync(userId); var orderDates = new List <string>(); var ratings = new List <RatingDto>(); // var toComment = new List <string>(); // yes, no olsun // orderitemları sırala bir önceki ile aynı ise ekleme değilse ekle //orderItems = orderItems.OrderBy(p => p.ProductId).ToList(); for (int i = 0; i < orderItems.Count; i++) { if (i == 0) { toComment.Add("yes"); } else if (!orderItems[i].ProductId.Equals(orderItems[i - 1].ProductId)) { toComment.Add("yes"); } else { toComment.Add("no"); } } foreach (var item in orderItems) { var date = item.Order.OrderDate.ToString("dd MMMM yyyy | HH:mm", CultureInfo.CreateSpecificCulture("tr")); orderDates.Add(date); var rating = await _ratingService.SingleOrDefaultAsync(p => p.OrderItemId == item.Id); if (rating == null) { ratings.Add(new RatingDto()); } else { ratings.Add(_mapper.Map <RatingDto>(rating)); } } var model = new UserOrderViewModel() { OrderItems = _mapper.Map <List <OrderItemDto> >(orderItems), OrderDates = orderDates, Ratings = ratings, ToComment = toComment }; return(View(model)); }
public async Task <IActionResult> OnGet() { var foodList = await _foodService.GetAll(); var vm = new UserOrderViewModel { FoodList = foodList.ToList(), UserId = "55656", UserName = User.Identity.Name }; return(Page()); }
public async Task <IActionResult> UserOrders() { string userId = this.userManager.GetUserId(this.HttpContext.User); var ordersViewModel = await this.orderService.GetAllUserOrders(userId); UserOrderViewModel model = new UserOrderViewModel { Orders = ordersViewModel.ToList(), }; return(this.View(model)); }
public async Task <IActionResult> Index([FromRoute] int id) { if (ActiveUser.Instance.User == null) { return(RedirectToAction("Create", "Users")); } var productsOnOrder = from ord in context.Order join uid in context.User on ord.UserId equals uid.UserId join op in context.OrderProduct on ord.OrderId equals op.OrderId join prod in context.Product on op.ProductId equals prod.ProductId where ord.UserId == ActiveUser.Instance.User.UserId && ord.PaymentTypeId == null select prod; var userPaymentTypes = context.PaymentType .Where(p => p.UserId == ActiveUser.Instance.User.UserId) .AsEnumerable() .Select(li => new SelectListItem { Text = li.Name.ToString(), Value = li.PaymentTypeId.ToString() }).ToList(); UserOrderViewModel uorder = new UserOrderViewModel(context); uorder.PaymentTypes = userPaymentTypes; uorder.Product = productsOnOrder .OrderBy(l => l.Name); double totalPrice = 0; var productsList = productsOnOrder.ToList(); productsList.ForEach(p => totalPrice += p.Price); uorder.TotalOrderPrice = totalPrice; if (productsOnOrder == null) { // This is where we could build a new ViewModel for when the user's cart is empty // All of the logic for an empty order view will be within this IF block // In pseudo-code,, it might be something like... // EmptyOrderViewModel emptyOrder = new EmptyOrderViewModel(); // return View(emptyOrder); return(View()); } return(View(uorder)); }
/// <summary> /// Returns the single order page /// </summary> /// <returns>Actionresult SingleOrder</returns> public IActionResult Single() { var model = new UserOrderViewModel(); model.ProductsInSystem = new List <ProductOverviewViewModel>(); foreach (Product p in productRepo.RetrieveAllProducts()) { ProductOverviewViewModel pmodel = new ProductOverviewViewModel(); pmodel.ProductId = p.RetrieveProductId(); pmodel.ProductName = p.ProductName; model.ProductsInSystem.Add(pmodel); } return(View("SingleOrder", model)); }
public ActionResult OrderDetail(int id) { ProductOrder oriData = repository.ProductOrders .Where(p => p.ID == id).FirstOrDefault(); if (oriData == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } UserOrderViewModel data = new UserOrderViewModel { Date = oriData.Date, ProductList = oriData.GetDetailFromProductList(), ShippingAddress = oriData.ShippingAddress, ReceiverName = oriData.ReceiverName }; return(View(data)); }
public async Task <IActionResult> OrderConfirmationMail(UserOrderViewModel model) { //Set up sendgrid API string apiKey = ""; SendGridClient client = new SendGridClient(apiKey); EmailAddress from = new EmailAddress("*****@*****.**", "RicksWebWorld"); EmailAddress to = new EmailAddress(model.Email); string subject = "Order Confirmation RicksWebWorld"; string content01 = "<h1>Thank you for your purchase!</h1>"; string content02 = "<p>Hi, we're getting your order ready to be shipped. We will notify you when it has been sent</p>"; string content03 = "<hr/>"; string content04 = "<a style='display:inherit' href='http://rickswebworld.azurewebsites.net'>Visit our store</a>"; string content05 = "<img style='width:150px; padding-top:20px;' src='http://rickswebworld.azurewebsites.net/images/logo-webworld.png'>"; string htmlContent = content01 + content02 + content03 + content04 + content05; SendGridMessage msg = MailHelper.CreateSingleEmail(from, to, subject, "", htmlContent); Response response = await client.SendEmailAsync(msg); return(RedirectToAction("Login", "User")); }
public async Task <IActionResult> CreateOrder(UserOrderViewModel model, string orderingUser) { var loggedInUser = HttpContext.Session.GetObjectFromJson <UserViewModel>("ComplexObject"); var selectedUser = userRepo.RetrieveUserByUsername(orderingUser); List <CartItem> ListOfCartItems = CartItemViewModelToCartItem(loggedInUser.ShoppingCart.ItemsInCart); if (model.OrderDescription == null) { model.OrderDescription = "No description"; } Order order = new Order(selectedUser, model.OrderDescription, 1, ListOfCartItems); order.SendAddress = model.SendAddress; order.SendZipcode = model.SendZipcode; order.SendPlace = model.SendPlace; orderRepo.CreateNewOrder(order); sessionHelper.UpdateCurrentSessionUVM(loggedInUser); await new MailController().OrderConfirmationMail(model); return(RedirectToAction("Index", "Home")); }
/// <summary> /// Returns the OrderOverview page /// </summary> /// <returns>Actionresult OrderOverview</returns> public IActionResult Overview() { UserOrderViewModel model = new UserOrderViewModel(); model.OrdersInSystem = new List <OrderViewModel>(); foreach (Order o in orderRepo.RetrieveAllOrders()) { IMapper mapper = mapextension.OrdertoOrderViewModel(); OrderViewModel omodel = mapper.Map <OrderViewModel>(o); omodel.ItemsInOrder = new List <CartItemViewModel>(); omodel.User = new UserOverviewViewModel(); omodel.User.Email = o.RetrieveCustomer().Email; foreach (CartItem c in o.RetrieveItemsInOrder()) { CartItemViewModel cmodel = new CartItemViewModel(); cmodel.Quantity = c.Quantity; omodel.ItemsInOrder.Add(cmodel); } model.OrdersInSystem.Add(omodel); } return(View("OrderOverview", model)); }
public ActionResult Order(int offer) { try { var offerDb = Db.Trades.Find(offer); var user = UserManager.FindById(User.Identity.GetUserId()); // tradeDataLayer.CheckLotOnResell(user, lotDb); if (offerDb != null) { var model = new UserOrderViewModel() { Contragent = user.Group.Contragents.ToList().Select(v => new SelectListItem() { Value = v.Id.ToString(), Text = v.LongName }).ToList(), OfferId = offerDb.Id, Price = offerDb.PriceStart, Volume = (int)offerDb.TotalVolume }; return(PartialView("Partials/OrderModal", model)); } throw new ArgumentNullException("offer"); } catch (Exception ex) { logger.Error(ex); return (Json(new { success = false, error = $"{LocalText.Inst.Get("error", "errorBet", "Відбулася помилка", "Произошла ошибка")} {GetFullErrorMessage(ex)}" }, JsonRequestBehavior.AllowGet)); }; }
IEnumerable <UserOrderViewModel> GetTodayOrders() { var viewModels = new List <UserOrderViewModel>(); using (FoodOrderEntities db = new FoodOrderEntities()) { var today = DateTime.Now.ToString("dd/MM/yyyy"); var innerjoin = db.Orders.Where(x => x.dateTime.Contains(today)).Join( db.Users, o => o.userId, u => u.userId, (o, u) => new { username = u.username, orderId = o.orderId, status = o.status, totalPrice = o.totalPrice, dateTime = o.dateTime }).ToList(); foreach (var item in innerjoin) { UserOrderViewModel viewModel = new UserOrderViewModel { user = new User(), order = new Order() }; viewModel.user.username = item.username; viewModel.order.orderId = item.orderId; viewModel.order.status = item.status; viewModel.order.dateTime = item.dateTime; viewModel.order.totalPrice = item.totalPrice; viewModels.Add(viewModel); } return(viewModels); } }
public void Can_View_Order_Detail() { var myMock = new MyMock(); DateTime time = DateTime.Now; myMock.ProductRepository.Setup(u => u.ProductOrders).Returns(new ProductOrder[] { new ProductOrder { ID = 1, Date = time, ReceiverName = "Rec1", ShippingAddress = "address1", ProductList = "1:name1,2,1999" }, new ProductOrder { ID = 2, Date = time, ReceiverName = "Rec2", ShippingAddress = "address2", ProductList = "2:name2,1,3999&3:name3,1,9999" } }); var controller = new AdminController(myMock.ProductRepository.Object, myMock.UserManager.Object); UserOrderViewModel result = (controller.OrderDetail(2) as ViewResult).Model as UserOrderViewModel; Assert.AreEqual(time, result.Date); Assert.AreEqual("Rec2", result.ReceiverName); Assert.AreEqual("address2", result.ShippingAddress); Assert.AreEqual(2, result.ProductList.Count); Assert.AreEqual("2", result.ProductList[0][0]); Assert.AreEqual("name2", result.ProductList[0][1]); Assert.AreEqual("1", result.ProductList[0][2]); Assert.AreEqual("3999", result.ProductList[0][3]); Assert.AreEqual("3", result.ProductList[1][0]); }
public ActionResult PayNowCart(CheckOutViewModel checkoutViewModel) { if (checkoutViewModel != null && ModelState.IsValid) { string SessionID = string.Empty; if (Session["sessionid"] != null) { SessionID = Convert.ToString(Session["sessionid"]); } string userName = string.IsNullOrEmpty(Convert.ToString(User.Identity.Name)) ? string.Empty : User.Identity.Name; if (string.IsNullOrEmpty(userName)) { ViewBag.msg = "Please login for your order confirmation"; return(View("Index")); } else { Session["invoiceno"] = Guid.NewGuid(); Session["checkoutmodel"] = checkoutViewModel; CartBL objcart = new CartBL(); Int64 value = objcart.UpdateCartWithUserId(SessionID, userName); objcart = null; //UserRepo objuser = new UserRepo(); //int value1 = objuser.UpdateUserInfo(model.BillingModel); //objuser = null; // return RedirectToAction("PayNowCart", model); } UserRepo objuser = new UserRepo(); var user = objuser.GetUserInfo(userName); //var user = UserManager.Users.Where(u => u.Email == userName).FirstOrDefault(); CartBL obj = new CartBL(); var cartModelLst = obj.GetCartlist(SessionID, user); obj = null; string Email = user.Email; UserOrderViewModel orderViewModel = new UserOrderViewModel(); orderViewModel.Address = checkoutViewModel.BillingModel.AddressBlock; orderViewModel.City = checkoutViewModel.BillingModel.City; orderViewModel.Country = checkoutViewModel.BillingModel.Country; orderViewModel.FirstName = checkoutViewModel.BillingModel.FirstName; orderViewModel.LastName = checkoutViewModel.BillingModel.LastName; orderViewModel.PostalCode = checkoutViewModel.BillingModel.ZipCode; orderViewModel.State = checkoutViewModel.BillingModel.State; orderViewModel.Mobile = checkoutViewModel.BillingModel.Mobile; orderViewModel.AddressShipping = checkoutViewModel.ShippingModel.AddressBlock; orderViewModel.CityShipping = checkoutViewModel.ShippingModel.City; orderViewModel.CountryShipping = checkoutViewModel.ShippingModel.Country; orderViewModel.FirstNameShipping = checkoutViewModel.ShippingModel.FirstName; orderViewModel.LastNameShipping = checkoutViewModel.ShippingModel.LastName; orderViewModel.PostalCodeShipping = checkoutViewModel.ShippingModel.ZipCode; orderViewModel.StateShipping = checkoutViewModel.ShippingModel.State; orderViewModel.MobileShipping = checkoutViewModel.ShippingModel.Mobile; orderViewModel.OrderDate = DateTime.Now; orderViewModel.InvoiceNo = Convert.ToString(Session["invoiceno"]); orderViewModel.Email = Email; orderViewModel.IpAddress = Request.ServerVariables["REMOTE_ADDR"]; orderViewModel.UserId = user.Id; List <OrderDetailViewModel> orderDetailViewModelList = new List <OrderDetailViewModel>(); string detl = "<table border='1'>"; detl += "<thead>"; detl += "<tr>"; detl += "<th>Srno</th>"; detl += "<th>Product</th>"; detl += "<th>Qty</th>"; detl += "<th>Price</th>"; detl += "<th>Amount</th>"; detl += "</tr>"; detl += "</thead>"; detl += "<tbody>"; int srno = 1; decimal totalAmount = 0; foreach (var cart in cartModelLst) { OrderDetailViewModel od = new OrderDetailViewModel(); od.ProductId = cart.ProductId; od.Quantity = cart.Qty; od.UnitPrice = cart.SalePrice; od.Discount = 0; orderDetailViewModelList.Add(od); detl += "<tr>"; detl += "<td>" + srno++ + "</td>"; detl += "<td>" + cart.ProductName + "</td>"; detl += "<td>" + cart.Qty + "</td>"; detl += "<td> Rs." + String.Format("{0:0.00}", cart.SalePrice) + "</td>"; detl += "<td> Rs." + String.Format("{0:0.00}", cart.Qty * cart.SalePrice) + "</td>"; detl += "</tr>"; totalAmount += (cart.Qty * cart.SalePrice); } detl += "<tr>"; detl += "<td colspan='4' align='right'>Sub Total</td>"; detl += "<td>" + String.Format("{0:0.00}", totalAmount) + "</td>"; detl += "</tr>"; detl += "</tbody>"; detl += "</table>"; orderViewModel.OrderDetailViewModelList = orderDetailViewModelList; orderViewModel.Total = Convert.ToDecimal(totalAmount); // remove detail from cart OrderBL objOrder = new OrderBL(); Int64 OrderId = objOrder.AddToOrder(orderViewModel); objOrder = null; //CartRepoModel objCart = new CartRepoModel(); //int value = objCart.RemoveFromCart(UserId); //objCart = null; // mail to admin #region "Send mail by admin" string htmlString = CommonFunction.ReadHtmlTemplate("order"); htmlString = htmlString.Replace("@@sitename@@", CommonFunction.SiteName) .Replace("@@emailid@@", Email).Replace("@@orderdate@@", orderViewModel.OrderDate.ToString("dd-MM-yyyy")) .Replace("@@invoiceno@@", orderViewModel.InvoiceNo) .Replace("@@username@@", orderViewModel.FirstName + " " + orderViewModel.LastName) .Replace("@@detail@@", detl); // var flag = CF.SendMail(CommonFunction.AdminEmail, CommonFunction.AdminEmail, "Order place", htmlString); // CommonFunction.SendEmail(Email, "Confirm your account",htmlString); CommonFunction.SendByAdminGmail(Email, "Order place", htmlString); #endregion // redirect to payment gateway return(RedirectToAction("Index", "Thanks")); } else { } return(View()); }
public IActionResult Order([Bind("Name,Surname,Adress,Email,GameIds")] UserOrderViewModel user) { if (!ModelState.IsValid) { return(View(user)); } else { var order = new Order(); var igre = new List <GameViewModel>(); string id = ""; foreach (char c in user.GameIds) { if (!c.Equals('[') && !c.Equals(',') && !c.Equals(']')) { id += c; try { var game = _context.Games.FirstOrDefault(x => x.Id == Int32.Parse(id)); var igra = igre.FirstOrDefault(x => x.Id == game.Id); game.Amount--; _context.Games.Update(game); _context.SaveChanges(); if (igra != null) { igra.Amount++; } else { igra = new GameViewModel(); igra.Id = game.Id; igra.Name = game.Name; igra.Amount = 1; igra.AmountAvailable = game.Amount; igra.Category = game.Category; igra.ImgUrl = game.ImgUrl; igra.Price = game.Price; igra.Description = game.Description; igre.Add(igra); } } catch (System.Exception) { } } else { id = ""; } } Order lastOrder = _context.Orders.LastOrDefault(); int orderId = lastOrder != null ? lastOrder.Id + 1 : 1; order.Id = orderId; order.Name = user.Name; order.Surname = user.Surname; order.Email = user.Email; order.Adress = user.Adress; order.Date = DateTime.Now; _context.Orders.Add(order); foreach (var game in igre) { var gameOnOrder = new GameOnOrder(); GameOnOrder lastGameOnOrder = _context.GamesOnOrder.LastOrDefault(); int gameOnOrderId = lastGameOnOrder != null ? lastGameOnOrder.Id + 1 : 1; gameOnOrder.Id = gameOnOrderId; gameOnOrder.GameId = game.Id; gameOnOrder.OrderId = order.Id; gameOnOrder.Amount = game.Amount; _context.GamesOnOrder.Add(gameOnOrder); _context.SaveChanges(); } ViewBag.Success = true; return(View(user)); } }
/// <summary> /// Calls for the checkout page /// </summary> /// <returns>IActionresult Checkout</returns> public IActionResult Checkout() { UserOrderViewModel model = CheckForLoggedInUserForOrder(); return(View("Checkout", model)); }
public IActionResult ShowImages(string orderId) { UserOrderViewModel model = this.usersService.GetOrder(orderId); return(this.View(model)); }
public Int64 AddToOrder(UserOrderViewModel userOrderViewModel) { Int64 OrderId = 0; using (var txn = new TransactionScope()) { try { using (ApplicationDbContext db = new ApplicationDbContext()) { UserOrder order = new UserOrder(); Guid orderID = Guid.NewGuid(); order.Id = orderID; order.UserId = userOrderViewModel.UserId; order.InvoiceNo = userOrderViewModel.InvoiceNo; order.Email = userOrderViewModel.Email; order.Ip = userOrderViewModel.IpAddress; order.OrderStatus = "under process"; order.IsPaid = false; order.Address = userOrderViewModel.Address; order.City = userOrderViewModel.City; order.Country = userOrderViewModel.Country; order.FirstName = userOrderViewModel.FirstName; order.LastName = userOrderViewModel.LastName; order.MobileNo = userOrderViewModel.Mobile; order.StateName = userOrderViewModel.State; order.ZipCode = userOrderViewModel.PostalCode; order.FirstNameShipping = userOrderViewModel.FirstNameShipping; order.LastNameShipping = userOrderViewModel.LastNameShipping; order.AddressShipping = userOrderViewModel.AddressShipping; order.CityShipping = userOrderViewModel.CityShipping; order.StateShipping = userOrderViewModel.StateShipping; order.CountryShipping = userOrderViewModel.CountryShipping; order.ZipCodeShipping = userOrderViewModel.PostalCodeShipping; order.MobileShipping = userOrderViewModel.MobileShipping; // order.StateIdShipping = userOrderViewModel.; order.StdCodeShipping = string.Empty; order.PhoneShipping = string.Empty; order.CouponCode = string.Empty; order.TotalAmount = userOrderViewModel.Total; order.DiscountAmnt = 0; // order.StateId = 0; order.StdCode = string.Empty; order.TransactionId = string.Empty; order.UserId = userOrderViewModel.UserId; order.HomePhone = string.Empty; db.UserOrders.Add(order); db.SaveChanges(); OrderId = 1; foreach (var od in userOrderViewModel.OrderDetailViewModelList) { OrderDetail orderDetail = new OrderDetail(); orderDetail.Discount = od.Discount; orderDetail.UserOrderId = orderID; orderDetail.ProductId = od.ProductId; orderDetail.Quantity = od.Quantity; orderDetail.UnitPrice = od.UnitPrice; db.OrderDetails.Add(orderDetail); db.SaveChanges(); } /// remove detail from tblcart var cart = db.UserCarts.Where(w => w.UserId == order.UserId).ToList(); if (cart != null) { foreach (var c in cart) { db.UserCarts.Remove(c); db.SaveChanges(); } } txn.Complete(); } } catch (Exception ex) { throw new Exception(ex.ToString()); } } return(OrderId); }