コード例 #1
0
        public async Task <IActionResult> PostBookingRecords([FromBody] BookingRecords bookingRecords)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.BookingRecords.Add(bookingRecords);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (BookingRecordsExists(bookingRecords.BookingId))
                {
                    return(new StatusCodeResult(StatusCodes.Status409Conflict));
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("GetBookingRecords", new { id = bookingRecords.BookingId }, bookingRecords));
        }
コード例 #2
0
        public async Task <IActionResult> PutBookingRecords([FromRoute] int id, [FromBody] BookingRecords bookingRecords)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != bookingRecords.BookingId)
            {
                return(BadRequest());
            }

            _context.Entry(bookingRecords).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BookingRecordsExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
コード例 #3
0
        public IActionResult Checkout()
        {
            var amount = TempData["total"];
            var cid    = (TempData["cid"]).ToString();

            int.Parse(HttpContext.Session.GetString("cID"));


            DateTime cin  = DateTime.Parse(HttpContext.Session.GetString("CheckIn"));
            DateTime cout = DateTime.Parse(HttpContext.Session.GetString("CheckOut"));

            Bookings bookings = new Bookings()
            {
                TotalAmount = Convert.ToSingle(amount),
                BookingDate = DateTime.Now,
                CheckIn     = cin,
                CheckOut    = cout,
                CustomerId  = int.Parse(cid)
            };

            ViewBag.Book = bookings;
            context.Bookings.Add(bookings);
            context.SaveChanges();


            var booking = SessionHelper.GetObjectFromJson <List <Item> >(HttpContext.Session, "Booking");
            List <BookingRecords> bookingRecords = new List <BookingRecords>();

            for (int i = 0; i < booking.Count; i++)
            {
                BookingRecords bookingRecord = new BookingRecords()
                {
                    BookingId = bookings.BookingId,
                    RoomId    = booking[i].HotelRooms.RoomId,
                    Quantity  = booking[i].Quantity
                };
                bookingRecords.Add(bookingRecord);
            }

            bookingRecords.ForEach(n => context.BookingRecords.Add(n));
            context.SaveChanges();
            TempData["cust"] = cid;
            ViewBag.booking  = null;
            return(RedirectToAction("Invoice"));
        }
コード例 #4
0
        public IActionResult Checkout(string stripeEmail, string stripeToken)
        {
            var amount = TempData["total"];
            var cid    = (TempData["cid"]).ToString();

            int.Parse(HttpContext.Session.GetString("cID"));


            DateTime cin  = DateTime.Parse(HttpContext.Session.GetString("CheckIn"));
            DateTime cout = DateTime.Parse(HttpContext.Session.GetString("CheckOut"));

            Bookings bookings = new Bookings()
            {
                TotalAmount = Convert.ToSingle(amount),
                BookingDate = DateTime.Now,
                CheckIn     = cin,
                CheckOut    = cout,
                CustomerId  = int.Parse(cid)
            };

            ViewBag.Book = bookings;
            _context.Bookings.Add(bookings);
            _context.SaveChanges();
            TempData["bookingId"] = bookings.BookingId;

            var booking = SessionHelper.GetObjectFromJson <List <Item> >(HttpContext.Session, "Booking");
            List <BookingRecords> bookingRecords = new List <BookingRecords>();

            for (int i = 0; i < booking.Count; i++)
            {
                BookingRecords bookingRecord = new BookingRecords()
                {
                    BookingId = bookings.BookingId,
                    RoomId    = booking[i].HotelRooms.RoomId,
                    Quantity  = booking[i].Quantity
                };
                bookingRecords.Add(bookingRecord);
            }

            bookingRecords.ForEach(n => _context.BookingRecords.Add(n));
            _context.SaveChanges();
            TempData["cust"] = cid;
            ViewBag.booking  = null;


            int days      = int.Parse(TempData["days"].ToString());
            var customers = new CustomerService();
            var charges   = new ChargeService();



            var customer = customers.Create(new CustomerCreateOptions
            {
                Email       = stripeEmail,
                SourceToken = stripeToken
            });


            var charge = charges.Create(new ChargeCreateOptions
            {
                Amount      = booking.Sum(item => item.HotelRooms.RoomPrice * item.Quantity * days),
                Description = "Sample Charge",
                Currency    = "INR",
                CustomerId  = customer.Id
            });

            _context.SaveChanges();

            var customerService = new CustomerService();

            ViewBag.details = charge.PaymentMethodDetails.Card.Last4;


            Payments payment = new Payments()
            {
                PaymentDate        = DateTime.Now,
                PaymentAmount      = booking.Sum(item => item.HotelRooms.RoomPrice * item.Quantity * days),
                PaymentDescription = " Payment Is Done.Thanks",
                CustomerId         = int.Parse(HttpContext.Session.GetString("cID")),
                BookingId          = int.Parse(TempData["bookingId"].ToString()),
                PaymentCardNumber  = int.Parse(ViewBag.details),
                StripePaymentId    = stripeToken
            };

            _context.Payments.Add(payment);
            _context.SaveChanges();
            TempData["paymentID"] = payment.PaymentId;

            return(RedirectToAction("invoice", "Booking"));
            //return RedirectToAction("charge","Booking");
        }