示例#1
0
        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 }));
        }
示例#2
0
        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));
        }
示例#5
0
        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! "
            });
        }
示例#6
0
        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)));
        }
示例#8
0
        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"));
        }
示例#10
0
 public void CreateSuccessfulCheckout()
 {
     holdingId = holdingRepo.Create(aCheckedInHolding);
     checkout  = new CheckOutViewModel {
         Barcode = aCheckedInHolding.Barcode, PatronId = someValidPatronId
     };
 }
示例#11
0
        // 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 }));
        }
示例#12
0
        //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);
        }
示例#13
0
        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 }));
        }
示例#15
0
        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);
        }
示例#17
0
        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);
        }
示例#19
0
        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));
        }
示例#21
0
        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));
        }
示例#22
0
        //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;
        }
示例#24
0
        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);
        }
示例#25
0
 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
            }));
        }
示例#27
0
        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);
        }
示例#29
0
        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));
            }
        }
示例#30
0
        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));
            }
        }