public async Task <IActionResult> CheckOut(CheckOutViewModel model, string id) { Guid.TryParse(id, out Guid data); var book = await _book.GetBookById(data); ViewBag.Book = book; ViewBag.Message = null; if (!ModelState.IsValid) { return(View(model)); } var isNumeric = Int64.TryParse(model.NationalId, out Int64 _); if (!isNumeric) { ModelState.AddModelError("NationalId", "Provide a valid 11 digit number"); return(View(model)); } var result = await _bookDetail.CheckOutBook(model, data); await _book.UpdateBookStatus(result.BookId, BookStatus.CheckOut); return(RedirectToAction("Index", new { CheckOut = true })); }
public CheckOutMessage Put([FromUri] int bookID, [FromBody] CheckOutViewModel data) { var db = new LibraryContext(); var book = db.Books.Single(x => x.ID == bookID); if (!book.IsCheckedOut) { book.IsCheckedOut = true; book.DueBackDate = DateTime.Now.AddDays(7); var newCheckout = new CheckOut() { TimeStamp = DateTime.Now, Email = data.Email, BookID = book.ID, Book = book }; db.Checkouts.Add(newCheckout); db.SaveChanges(); return(new CheckOutMessage { Message = $"You have successfully checked out this book. Please return in 7 days! " }); } else { return(new CheckOutMessage { Message = $"This book is unavailable at the moment" }); } }
// // GET: /Checkout/ public ActionResult AddressAndPayment() { // Set up our ViewModel CheckOutViewModel viewModel = new CheckOutViewModel(); string userID = GetUserID(User.Identity.Name); // Get the user info viewModel.User = (from u in storeDB.ApplicationUsers where u.Id == userID select u).FirstOrDefault(); // Get payment info viewModel.PaymentMethods = (from p in storeDB.PaymentMethods where p.UserID == userID select p).ToList(); // Get payment info viewModel.ShippingAddresses = (from a in storeDB.CustomerAddresses where a.UserId == userID select a).ToList(); viewModel.ShippingOptions = (from o in storeDB.ShippingOptions select o).ToList(); // Get the user's Shopping Cart info var cart = ShoppingCart.GetCart(this.HttpContext); //var cartItems = cart.GetCartItems(); viewModel.CartTotal = cart.GetTotal(); return(View(viewModel)); }
public async Task <IActionResult> Index() { CheckOutViewModel model = new CheckOutViewModel(); await GetCurrentCart(model); if (User.Identity.IsAuthenticated) { TCPUser currentUser = await _signInManager.UserManager.GetUserAsync(User); Braintree.CustomerSearchRequest search = new Braintree.CustomerSearchRequest(); search.Email.Is(currentUser.Email); var searchResult = await _brainTreeGateway.Customer.SearchAsync(search); if (searchResult.Ids.Count > 0) { Braintree.Customer customer = searchResult.FirstItem; model.CreditCards = customer.CreditCards; model.Addresses = customer.Addresses; } } if (model.Cart == null) { return(RedirectToAction("Index", "Home")); } return(View(model)); }
public CheckInMessage Put([FromUri] int bookID, [FromBody] CheckOutViewModel data) { var db = new LibraryContext(); var book = db.Books.Single(x => x.ID == bookID); if (book.IsCheckedOut) { book.IsCheckedOut = true; book.DueBackDate = DateTime.Now; var newCheckout = new CheckOut() { TimeStamp = DateTime.Now, Email = data.Email, BookID = book.ID, Book = book }; db.Checkouts.Add(newCheckout); db.SaveChanges(); } return(new CheckInMessage { Message = $"You have successfully checked in this book. Thank you and have a wonderful day! " }); }
public ActionResult CheckOutSubmit(CheckOutViewModel model) { if (ShoppingCart.AmountItems == 0) { Messages.NewInfo("You can't check out an empty order."); return(RedirectToAction("Index", model)); } if (ModelState.IsValid) { Customer customer = db.Customers.FirstOrDefault(c => c.EmailAddress == model.EmailAddress); if (customer == null) { // Error handling Messages.NewDanger("No details found for the specified email address!"); } if (customer != null && CheckOut(customer)) { return(RedirectToAction("CheckOutComplete")); } } return(RedirectToAction("Index", model)); }
public IActionResult Checkout(CheckOutViewModel viewModel) { if (!ModelState.IsValid) { viewModel.Cart = HttpContext.Session.Get <Cart>("Cart"); return(View(viewModel)); } var customer = new Customer( viewModel.FirstName, viewModel.LastName, viewModel.Email, viewModel.Address); var cart = HttpContext.Session.Get <Cart>("Cart"); var order = new Order { OrderLines = cart .Items .Values.Select(cartItem => new OrderLine(cartItem.Cake.Id, cartItem.Quantity)) .ToList() }; customer.Orders.Add(order); context.Customers.Add(customer); context.SaveChanges(); HttpContext.Session.Remove("Cart"); return(RedirectToAction(nameof(Confirmation))); }
public IActionResult Index(CheckOutViewModel customerView) { if (ModelState.IsValid) { //Update customer Customer customer = _context.customers.SingleOrDefault(p => p.CustomerID == customerView.CustomerID); customer.Name = customerView.Name; customer.Addres = customerView.Addres; customer.PhoneNumber = customerView.PhoneNumber; _context.Update(customer); //Save bill Bill bill = new Bill(); bill.BillTime = DateTime.Now; bill.CustomerID = customer.CustomerID; bill.PaymentMethod = "Trả khi nhận hàng"; bill.Status = "Đang xử lý"; bill.TotalAmount = Cart.Sum(p => p.TotalPrice); _context.Add(bill); /*foreach(var item in Cart) * { * BillDetail detail = new BillDetail(); * detail.ProductID = item.Product.ProductID; * detail. * }*/ _context.SaveChanges(); var data = new List <CartItem>(); HttpContext.Session.Set("Cart", data); return(RedirectToAction("Success")); } return(RedirectToAction("Fail")); }
public ActionResult CheckOut(CheckOutViewModel checkoutDetail) { Session["CheckoutDetail"] = checkoutDetail; if (!ModelState.IsValid) { return(View(checkoutDetail)); } if (checkoutDetail == null) { return(View("CheckOut")); } var cart = _shoppingCartService.GetShoppingCart(); var payment = new Payment { Attachment = checkoutDetail.Attachment, Paid = false, PaymentMethod = checkoutDetail.PaymentMethod }; _orderService.MakeOrder( cart.SelectedProducts, User.Identity.GetUserName(), checkoutDetail.TransportationType, payment, checkoutDetail.Note ); return(RedirectToAction("Index")); }
public void CreateSuccessfulCheckout() { holdingId = holdingRepo.Create(aCheckedInHolding); checkout = new CheckOutViewModel { Barcode = aCheckedInHolding.Barcode, PatronId = someValidPatronId }; }
// Exercise (E1) creation of GetPaymentMethods(), GetShipmentMethods() and GetShippingRates() goes below // ToDo: Get IEnumerables of Shipping and Payment methods along with ShippingRates //Exercise (E2) Do CheckOut public ActionResult CheckOut(CheckOutViewModel model) { // ToDo: Load the cart // ToDo: Add an OrderAddress // ToDo: Define/update Shipping // ToDo: Add a Payment to the Order // ToDo: Add a transaction scope and convert the cart to PO // ToDo: Housekeeping (Statuses for Shipping and PO, OrderNotes and save the order) // Final steps, navigate to the order confirmation page StartPage home = _contentLoader.Get <StartPage>(ContentReference.StartPage); ContentReference orderPageReference = home.Settings.orderPage; // the below is a dummy, change to "PO".OrderNumber when done string passingValue = String.Empty; return(RedirectToAction("Index", new { node = orderPageReference, passedAlong = passingValue })); }
//Checking Out public async Task <PaymentResult> CheckoutAsync(CheckOutViewModel model) { var booked = new Booked() { Name = model.Name, Email = model.Email, Mobile = model.Mobile, Address = model.Address, Persons = model.Persons }; //To Authorize paymment var gateway = new PaymentGateway(); var result = gateway.ProcessPayment(model); if (result.Succeeded) { booked.TransactionId = result.TransactionId; _db.Books.Add(booked); await _db.SaveChangesAsync(); } return(result); }
public ActionResult CheckOut(CheckOutViewModel CheckOutViewModel, Cart cart) { try { Customer c = customerRepository.FindBy(User.Identity.GetUserName()); string besteldeProducten = null; foreach (CartLine line in cart.CartLines) { besteldeProducten += "<tr>" + "<td>" + line.Product.Name + "</td>" + "<td>" + line.Quantity + "</td>" + "</tr>"; } DateTime start = CheckOutViewModel.StartDatumHuur; DateTime einde = CheckOutViewModel.EindDatumHuur; Order o = new Order(start, einde, CheckOutViewModel.Voorwaarden); sendMail(besteldeProducten, start, einde); TempData["Info"] = "Bedankt voor het plaatsen van uw aanvraag " + User.Identity.GetUserName() + ". We contacteren u zo snel mogelijk."; cart.Clear(); // return View(new CheckOutViewModel(producten)); return(RedirectToAction("Index")); } catch (Exception ex) { ModelState.AddModelError("", ex.Message); } // TempData["Message"] = "Er is iets misgelopen " + User.Identity.GetUserName(); // return View(new CheckOutViewModel(producten)); return(View(new CheckOutViewModel(cart.GetCartLines()))); }
// ToDo: Get IEnumerables of Shipping and Payment methods along with ShippingRates // Exercise (E1) creation of GetPaymentMethods(), GetShipmentMethods() and GetShippingRates() goes below //Exercise (E2) Do CheckOut public ActionResult CheckOut(CheckOutViewModel model) { // ToDo: declare a variable for CartHelper // ToDo: Addresses (an If-Else) // ToDo: Define Shipping // Execute the "Shipping & Taxes - WF" (CartPrepare) ... and take care of the return object // ToDo: Define Shipping // Execute the "Payment activation - WF" (CartCheckout) ... and take care of the return object // Add a transaction scope and convert the cart to PO // Housekeeping below (Shipping release, OrderNotes and save the order) // Final steps, navigate to the order confirmation page StartPage home = _contentLoader.Service.Get <StartPage>(ContentReference.StartPage); ContentReference orderPageReference = home.Settings.orderPage; string passingValue = String.Empty; return(RedirectToAction("Index", new { node = orderPageReference, passedAlong = passingValue })); }
public JsonResult Checkout(CheckOutViewModel viewModel) { if (ModelState.IsValid) { var cartId = GetCartId(this.HttpContext); var order = new Order() { CustomerID = cartId, ContactTelephone = viewModel.ContactTelephone, FulllName = viewModel.FullName, Email = viewModel.Email, PostalCode = viewModel.PostalCode, City = viewModel.City, State = viewModel.State, StreetAddress = viewModel.StreetAddress, SubmittedDate = DateTime.Now, }; var result = PostData <Order, bool> .PostDataToWebService(order, ServiceUrl.CartAPI.CheckOut); var message = "Your order is being processed!"; if (!result) { message = "There was a problem when checking out cart"; } return(GetJsonResult(true, true, message)); } return(GetJsonResult(false, false, "There was a problem when checking out cart")); }
private async Task SenOrderSuccessfultlyEmailAsync(CheckOutViewModel checkOutViewModelDetails) { string htmlmsg = "<h1 style=\"color:green\">Order Confirm</h1><br/> <table style=\"font-family: arial, sans-serif; border - collapse: collapse; width: 100 %;\"><tr><th style=\" border: 1px solid #dddddd; text-align: left; padding: 8px;\">ProductName</th><th style=\" border: 1px solid #dddddd; text-align: left; padding: 8px;\">Price</th>"; int oddOrEven = 0; for (int i = 0; i < checkOutViewModelDetails.ProductList.Count; i++) { if (i % 2 == 0) { htmlmsg += "<tr style=\" border: 1px solid #dddddd; text-align: left; padding: 8px;\"><td style=\" border: 1px solid #dddddd; text-align: left; padding: 8px;\">" + checkOutViewModelDetails.ProductList[i].shortDescription + "</td><td style=\" border: 1px solid #dddddd; text-align: left; padding: 8px;\">" + checkOutViewModelDetails.ProductList[i].discountPrice + "</td></tr>"; } else { htmlmsg += "<tr style=\" border: 1px solid #dddddd; text-align: left; padding: 8px; background-color: #dddddd;\"><td style=\" border: 1px solid #dddddd; text-align: left; padding: 8px; background-color: #dddddd;\">" + checkOutViewModelDetails.ProductList[i].shortDescription + "</td><td style=\" border: 1px solid #dddddd; text-align: left; padding: 8px; background-color: #dddddd;\">₹" + checkOutViewModelDetails.ProductList[i].discountPrice + "</td></tr>"; } oddOrEven = i; } if (checkOutViewModelDetails.order.OrderType.Equals("codpayment")) { if (oddOrEven % 2 == 0) { htmlmsg += "<tr style=\" border: 1px solid #dddddd; text-align: left; padding: 8px;\"><td style=\" border: 1px solid #dddddd; text-align: left; padding: 8px;\">Shipping Charge</td><td style=\" border: 1px solid #dddddd; text-align: left; padding: 8px;\">₹" + ShipingCharge.ToString() + "</td></tr>"; } else { htmlmsg += "<tr style=\" border: 1px solid #dddddd; text-align: left; padding: 8px; background-color: #dddddd;\"><td style=\" border: 1px solid #dddddd; text-align: left; padding: 8px; background-color: #dddddd;\">Shipping Charge</td><td style=\" border: 1px solid #dddddd; text-align: left; padding: 8px; background-color: #dddddd;\">₹" + ShipingCharge.ToString() + "</td></tr>"; } } htmlmsg += "<tr style=\" border: 1px solid #dddddd; text-align: left; padding: 8px;\"><td style=\" border: 1px solid #dddddd; text-align: left; padding: 8px;\">Total Price</td><td style=\" border: 1px solid #dddddd; text-align: left; padding: 8px;\">₹" + checkOutViewModelDetails.totalPrice + "</td></tr></table> <br/> <br/> <h3>Orderdat: " + checkOutViewModelDetails.order.OrderPlacedDate.ToShortDateString() + "</h3>"; await _emailSender.SendEmailAsync(checkOutViewModelDetails.order.Email, "Order Placed Successfully OrderNo:" + checkOutViewModelDetails.order.OrderId, htmlmsg); }
public ActionResult Index(CheckOutPage currentPage) { string cartValidationMessages = String.Empty; //Cleaning up may be needed // a few different ways of loading var cart = _orderRepository.Load <ICart>(GetContactId(), DefaultCartName).FirstOrDefault(); var cart2 = _orderRepository.LoadCart <ICart>(GetContactId(), DefaultCartName); IEnumerable <IOrderGroup> cart3 = _orderRepository.Load(); // all IOrderGroups for current user if (cart == null) { throw new InvalidOperationException("No cart found"); // Fix this } // May want to validate the cart initially //cartValidationMessages = ValidateCart(cart); var model = new CheckOutViewModel(currentPage) { PaymentMethods = GetPaymentMethods(), ShippingMethods = GetShipmentMethods(), ShippingRates = GetShippingRates(), cartValidationMessages = ValidateCart(cart) }; return(View(model)); }
public CheckOutViewModel checkOutDetails() { List <OnScrollProductViewModel> productList = new List <OnScrollProductViewModel>(); CheckOutViewModel checkOutViewModel = new CheckOutViewModel(); if (HttpContext.Session.GetComplexData <List <int> >("cart") != null) { List <int> productsId = HttpContext.Session.GetComplexData <List <int> >("cart"); float totalPrice = 0; for (int i = 0; i < productsId.Count; i++) { Product productdata = productRepository.GetProductDetailById(productsId[i]); OnScrollProductViewModel dropdownProduct = new OnScrollProductViewModel { price = productdata.Price, productId = productdata.ProductId, productImage = productdata.ProductImage, discountPrice = (float)Math.Round(productdata.Price - productdata.Price * productdata.Discount / 100, 2), shortDescription = productdata.ShortDescription }; totalPrice += productdata.Price - productdata.Price * productdata.Discount / 100; productList.Add(dropdownProduct); } checkOutViewModel = new CheckOutViewModel { ProductList = productList, totalPrice = totalPrice }; } return(checkOutViewModel); }
public async Task <IActionResult> CheckOut(CheckOutViewModel mod) { var user = await _userManager.GetUserAsync(User); if (user == null) { Challenge(); } var serializedValue = (HttpContext.Session.GetString("varukorg")); var model = JsonConvert.DeserializeObject <ShoppingCart>(serializedValue); Bestallning bestallning; // Check users Role if (await _userManager.IsInRoleAsync(user, UserRole.RegularUser.ToString())) { bestallning = await _orderService.AddOrderAsync(user.Id, model, UserRole.RegularUser); } else { bestallning = await _orderService.AddOrderAsync(user.Id, model, UserRole.PremiumUser); } // Resetting cart to 0 items for this session model.Products = new List <Matratt>(); var temp = JsonConvert.SerializeObject(model); HttpContext.Session.SetString("varukorg", temp); return(View(bestallning)); }
public IActionResult Index() { CheckOutViewModel checkOutViewModelDetails = checkOutDetails(); ViewData["ShippingCharge"] = Convert.ToInt32(configuration["shippingCharge"]); return(View(checkOutViewModelDetails)); }
public ActionResult Index(CheckOutPage currentPage, bool passedAlong) // add the bool for accepting split Ship (Letter - Trousers) { IsOnLine = CheckIfOnLine.IsInternetAvailable; // for Find ... if on the bus //IsOnLine = true; // Load the cart, it should be one there ICart cart = base.GetCart(); if (cart == null) { throw new InvalidOperationException("No cart found"); // make nicer } // Should perhaps validate the cart & clean up... or not //ccService.CleanUpCart(cart); var model = new CheckOutViewModel(currentPage) { // ToDo: get shipments & payments PaymentMethods = GetPaymentMethods(), ShipmentMethods = GetShipmentMethods(), ShippingRates = GetShippingRates(), ShippingMethodInfo = CheckIfShippingMethodIsOkay() // not much done in this one, yet }; return(View(model)); }
//bu sayade kullanıcı otomatik olarak login ekranına //gönderilecek eğer kullanıcı zaten loginse gerek kalmayacak public ActionResult Checkout(int basketid) { CheckOutViewModel viewModel = new CheckOutViewModel(); viewModel.BasketId = basketid; viewModel.PaymentMethods = context.Paymentmethods.Select(x => new SelectListItem { Text = x.paymentmethodname, Value = x.id.ToString() }).ToList(); viewModel.ShippingMethods = context.Shippingmethods.ToList(); viewModel.UserDetail = context.Users.FirstOrDefault(x => x.mail == HttpContext.User.Identity.Name); viewModel.UserId = viewModel.UserDetail.id; viewModel.BasketItems = context.Basket_items.Where(x => x.basketid == basketid).ToList(); viewModel.Addresses = context.Addresses.Where(x => x.userid == viewModel.UserDetail.id).Select(x => new SelectListItem { Text = x.name, Value = x.id.ToString() }).ToList(); return(View(viewModel)); }
private async Task GetCurrentCart(CheckOutViewModel model) { Guid cartId; Cart cart = null; if (User.Identity.IsAuthenticated) { var currentUser = await _signInManager.UserManager.GetUserAsync(User); model.email = currentUser.Email; model.phoneNumber = currentUser.PhoneNumber; } if (Request.Cookies.ContainsKey("cartId")) { if (Guid.TryParse(Request.Cookies["cartId"], out cartId)) { cart = await _context.Carts .Include(carts => carts.CartItems) .ThenInclude(cartitems => cartitems.Product) .FirstOrDefaultAsync(x => x.CookieIdentifier == cartId); } } model.Cart = cart; }
public IActionResult Order() { if (!GetCartItems().Any()) { return RedirectToAction("Index"); } decimal SumPriceCart = 0; try { if (_httpContextAccessor.HttpContext.Session.GetString("Voucher").Length > 0) { SumPriceCart = decimal.Parse(_httpContextAccessor.HttpContext.Session.GetString("Voucher")); ViewBag.session = "ha"; } else SumPriceCart = GetTotal() < 1000000 ? (GetTotal() + 30000) : GetTotal(); } catch (Exception) { SumPriceCart = GetTotal() < 1000000 ? (GetTotal() + 30000) : GetTotal(); } var model = new CheckOutViewModel { Order = new Order(), Carts = GetCartItems(), CartTotal = SumPriceCart }; return View(model); }
public CheckOutPage() { InitializeComponent(); context = ((MainViewModel)BindingContext).CheckOut; InitializeScannerPage(); InitializeNoReceiptOption(); }
public ActionResult CheckOut(CheckOutViewModel model) { if (ModelState.IsValid) { var order = ProcessCheckOut(model, cartManager.MyCart); var orderNo = orderProvider.CreateOrderFromCart(order); var encryptedOrderNo = RijndaelHelper.Encrypt(orderNo, ConfigurationInstance[ConfigurationKeys.CryptographyKey]); string returnUrl = String.Format("{0}?o={1}", Url.Action("CheckOutSuccess"), encryptedOrderNo); return(Json(new { Error = false, OrderNo = orderNo, ReturnUrl = returnUrl })); } var allErrors = ModelState.Values.SelectMany(v => v.Errors).Select(o => o.ErrorMessage); return(Json(new { Error = true, Errors = allErrors })); }
public CheckOutReceiptViewModel Put([FromUri] int bookId, [FromBody] CheckOutViewModel data) { var db = new LibraryContext(); // find the book var book = db.Books.Single(s => s.Id == bookId); if (!book.IsCheckedOut) { book.IsCheckedOut = true; book.DueBackDate = DateTime.Now.AddDays(10); db.SaveChanges(); //TODO: add to ledger return(new CheckOutReceiptViewModel { Message = "Not here,pal., try again later", DuebackDate = book.DueBackDate }); } else { return(new CheckOutReceiptViewModel { Message = "Not here,pal., try again later", DuebackDate = book.DueBackDate }); // return Ok({message = " ", duebackDate = the date the book is due back) } }
private Order ProcessCheckOut(CheckOutViewModel model, CartViewModel myCart) { var person = personProvider.GetPerson(CurrentUserName); var order = new Order(); AutoMapper.Mapper.DynamicMap(model, order); order.OrderDate = DateTime.Today; order.OrderStatusId = (int)OrderStatuses.Unpaid; order.PersonId = person.Id; order.UniquePayment = 2; order.DeliveryDate = myCart.DeliveryDate; order.DeliveryTime = myCart.DeliveryTime; order.OrderAreaId = myCart.OrderAreaId; foreach (var itemInCart in myCart.OrderDetails) { var orderDetail = new OrderDetail(); orderDetail.ProductId = itemInCart.ProductId; orderDetail.Qty = itemInCart.Qty; orderDetail.UnitPrice = itemInCart.UnitPrice; orderDetail.DiscValue = itemInCart.DiscValue; orderDetail.Order = order; order.OrderDetails.Add(orderDetail); } return(order); }
public ActionResult AddressAndPayment(FormCollection values, CheckOutViewModel model) { var order = new CustomerOrder(); TryUpdateModel(order); try { // Enter order information from form submission order.UserID = GetUserID(User.Identity.Name); order.DeliveryAddressID = Convert.ToInt32(Request["Select Destination"]); //model.SelectedShippingAddress; order.PaymentMethodID = Convert.ToInt32(Request["Select Payment Method"]); //model.SelectedPaymentMethod; //3 order.OrderDate = DateTime.Now; order.ShippingOptionID = Convert.ToInt32(Request["Select Shipping Method"]); //model.SelectedShippingOption; //2 //Save Order storeDB.CustomerOrders.Add(order); storeDB.SaveChanges(); //Process the order var cart = ShoppingCart.GetCart(this.HttpContext); cart.CreateOrder(order); return(RedirectToAction("Complete", new { id = order.OrderId })); } catch { //Invalid - redisplay with errors return(View(order)); } }
public ActionResult ConfirmReservation(Reserve reserve) { if (!User.Identity.IsAuthenticated) { return(RedirectToAction("LogIn", "Account")); } else { CheckOutViewModel ck = new CheckOutViewModel(); try { string conStr = ConfigurationManager.ConnectionStrings["ParkingManagementConnection"].ConnectionString; string userEmail = getEmail(); DBManagement db = new DBManagement(); Account acc = db.getUserInfo(userEmail, conStr); CustomerAddress address = db.getCustomerAdress(acc.ID, conStr); Vehicle vehicle = db.getVehicle(acc.ID, conStr); ck.Acc = acc; ck.Address = address; ck.vehicle = vehicle; ck.reserve = reserve; } catch (Exception e) { ViewBag.errorMessage = "could't reserve parking error in system," + e.Message; return(View("ReserveView", reserve)); } return(View("CheckOutView", ck)); } }