public ActionResult DeleteConfirmed(int id)
        {
            Passenger_Booking passenger_Booking = db.Passenger_Booking.Find(id);

            db.Passenger_Booking.Remove(passenger_Booking);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "PB_ID,FK_Booking_ID,FK_ID")] Passenger_Booking passenger_Booking)
 {
     if (ModelState.IsValid)
     {
         db.Entry(passenger_Booking).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.FK_Booking_ID = new SelectList(db.Bookings, "Booking_ID", "Booking_ID", passenger_Booking.FK_Booking_ID);
     ViewBag.FK_ID         = new SelectList(db.Passenger_Details, "ID", "FName", passenger_Booking.FK_ID);
     return(View(passenger_Booking));
 }
        // GET: Passenger_Booking/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Passenger_Booking passenger_Booking = db.Passenger_Booking.Find(id);

            if (passenger_Booking == null)
            {
                return(HttpNotFound());
            }
            return(View(passenger_Booking));
        }
        // GET: Passenger_Booking/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Passenger_Booking passenger_Booking = db.Passenger_Booking.Find(id);

            if (passenger_Booking == null)
            {
                return(HttpNotFound());
            }
            ViewBag.FK_Booking_ID = new SelectList(db.Bookings, "Booking_ID", "Booking_ID", passenger_Booking.FK_Booking_ID);
            ViewBag.FK_ID         = new SelectList(db.Passenger_Details, "ID", "FName", passenger_Booking.FK_ID);
            return(View(passenger_Booking));
        }
 public void AddPassengerToBooking(int referenceNumber, int passportNumber)
 {
     using (var scope = new TransactionScope())
     {
         var booking = GetBooking(referenceNumber);
         if (IsBookedOnFlight(booking.flight_number, passportNumber))
         {
             throw new DoubleBookingException();
         }
         else
         {
             var passengerBooking = new Passenger_Booking();
             passengerBooking.reference_number = referenceNumber;
             passengerBooking.passport_number = passportNumber;
             booking.Passenger_Bookings.Add(passengerBooking);
             db.SubmitChanges();
             scope.Complete();
         }
     }
 }
Beispiel #6
0
        public ActionResult ValidationForPayment([Bind(Include = "cardtype,name,creditcardnumber,expirymonth,expiry_year")] Payment_Details paymentdetails)
        {
            Session["errormessage"] = null;
            if (ModelState.IsValid)
            {
                String cardtype = paymentdetails.cardtype.ToString();
                String name     = paymentdetails.name;
                String number   = paymentdetails.creditcardnumber.ToString();
                int    expmonth = paymentdetails.expirymonth;
                int    expyear  = paymentdetails.expiry_year;

                if (cardtype.Equals("visa"))
                {
                    int length = number.Length;
                    if (length != 16)
                    {
                        Session["errormessage"] = "Visa Card Number should have 16 digits!";
                        return(View("Payment_Page"));
                    }
                    if (number[0] != '4')
                    {
                        Session["errormessage"] = "Visa Card Number should start by 4";
                        return(View("Payment_Page"));
                    }
                    if (expmonth < 1)
                    {
                        Session["errormessage"] = "Sorry, Expiry month is out of range!";
                        String error = Session["errormessage"].ToString();
                        return(View("Payment_Page"));
                    }
                    if (expmonth > 12)
                    {
                        Session["errormessage"] = "Sorry, Expiry month is out of range!";
                        String error = Session["errormessage"].ToString();
                        return(View("Payment_Page"));
                    }
                    if (expyear < 2016)
                    {
                        Session["errormessage"] = "Sorry, Expiry Year is out of range!";
                        return(View("Payment_Page"));
                    }
                    if (expyear > 2031)
                    {
                        Session["errormessage"] = "Sorry, Expiry Year is out of range!";
                        return(View("Payment_Page"));
                    }
                }
                if (cardtype.Equals("mastercard"))
                {
                    int length = number.Length;
                    if (length != 16)
                    {
                        Session["errormessage"] = "MasterCard Number should have 16 digits!";
                        return(View("Payment_Page"));
                    }
                    if (number[0] != '5')
                    {
                        Session["errormessage"] = "Master Card Number should start by 51-55!";
                        return(View("Payment_Page"));
                    }
                    char secchar      = number[1];
                    int  secondnumber = (int)Char.GetNumericValue(secchar);
                    if (secondnumber > 6)
                    {
                        Session["errormessage"] = "Master Card Number should start by 51-55!";
                        return(View("Payment_Page"));
                    }
                    if (expmonth < 1)
                    {
                        Session["errormessage"] = "Sorry, Expiry month is out of range!";
                        return(View("Payment_Page"));
                    }
                    if (expmonth > 12)
                    {
                        Session["errormessage"] = "Sorry, Expiry month is out of range!";
                        return(View("Payment_Page"));
                    }
                    if (expyear < 2016)
                    {
                        Session["errormessage"] = "Sorry, Expiry year is out of range!";
                        return(View("Payment_Page"));
                    }
                    if (expyear > 2031)
                    {
                        Session["errormessage"] = "Sorry, Expiry year is out of range!";
                        return(View("Payment_Page"));
                    }
                }
                if (cardtype.Equals("americanexpress"))
                {
                    int length = number.Length;
                    if (length != 15)
                    {
                        Session["errormessage"] = "American Card Number should have 15 digits!";
                        return(View("Payment_Page"));
                    }
                    if (number[0] != '3')
                    {
                        Session["errormessage"] = "American Card Number should start by 34 or 37!";
                        return(View("Payment_Page"));
                    }
                    else if (number[1] != '4' && number[1] != '7')
                    {
                        Session["errormessage"] = "American Card Number should start by 34 or 37!";
                        return(View("Payment_Page"));
                    }
                    char secchar      = number[1];
                    int  secondnumber = (int)Char.GetNumericValue(secchar);
                    if (secondnumber < 4 || secondnumber > 7)
                    {
                        Session["errormessage"] = "Amrican Card Number should start by 34-37!";
                        return(View("Payment_Page"));
                    }
                    if (expmonth < 1)
                    {
                        Session["errormessage"] = "Sorry, Expiry month is out of range!";
                        return(View("Payment_Page"));
                    }
                    if (expmonth > 12)
                    {
                        Session["errormessage"] = "Sorry, Expiry month is out of range!";
                        return(View("Payment_Page"));
                    }
                    if (expyear < 2016)
                    {
                        Session["errormessage"] = "Sorry, Expiry year is out of range!";
                        return(View("Payment_Page"));
                    }
                    if (expyear > 2031)
                    {
                        Session["errormessage"] = "Sorry, Expiry year is out of range!";
                        return(View("Payment_Page"));
                    }
                }

                Console.WriteLine(cardtype);
                Console.WriteLine(name);
                Console.WriteLine(number);
                List <int> passids = new List <int>();
                if (Session["errormessage"] == null)
                {
                    List <Passenger_Details> passengerlist = (List <TrainReserveSystem.Models.Passenger_Details>)Session["passengerlist"];
                    foreach (var passenger in passengerlist)
                    {
                        db.Passenger_Details.Add(passenger);
                        db.SaveChanges();
                        passids.Add(passenger.ID);
                    }
                    var     rawQuery       = db.Database.SqlQuery <int>("SELECT COUNT(*) VALUE FROM Booking;");
                    var     task           = rawQuery.SingleAsync();
                    int     bookingid      = (int)task.Result + 1;
                    int     passengercount = (int)Session["passengercount"];
                    int     fare           = (int)Session["trainfare"];
                    int     totalfare      = passengercount * fare;
                    int     trainid        = (int)Session["id"];
                    Booking booking        = new Booking();
                    booking.Booking_ID         = bookingid;
                    booking.Total_Fare         = totalfare;
                    booking.FK_Train_Detail_ID = trainid;
                    db.Bookings.Add(booking);
                    db.SaveChanges();

                    Session["bookingid"] = bookingid;

                    foreach (var id in passids)
                    {
                        var rawQuery2 = db.Database.SqlQuery <int>("SELECT COUNT(*) VALUE FROM Passenger_Booking;");
                        var task2     = rawQuery2.SingleAsync();

                        int passengerbookingid = (int)task2.Result + 1;
                        Passenger_Booking pb   = new Passenger_Booking();
                        pb.PB_ID         = passengerbookingid;
                        pb.FK_Booking_ID = bookingid;
                        pb.FK_ID         = id;
                        db.Passenger_Booking.Add(pb);
                        db.SaveChanges();
                    }

                    return(View("PaymentConfirmation"));
                }
            }

            return(View("Payment_Page"));
        }