예제 #1
0
        private void b_save_Click(object sender, RoutedEventArgs e)
        {
            if (tb_busride_id.Text == "" || tb_traveller.Text == "" || tb_seats.Text == "")
            {
                MessageBox.Show("Empty fields are not allowed.", "Error!", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }



            BookingObject newObject = new BookingObject(Int32.Parse(tb_busride_id.Text), tb_traveller.Text, Int32.Parse(tb_seats.Text));

            if (DBConnection.CheckIfBookingAllowed(newObject))
            {
                int rowsChanged = -1;
                if (newbooking)
                {
                    rowsChanged = DBConnection.InsertBooking(newObject);
                }
                else
                {
                    rowsChanged = DBConnection.UpdateBooking(newObject, oldObject);
                }

                if (rowsChanged > 0)
                {
                    parentWindow.parentWindow.UpdateAllChain();
                    Close();
                }
            }
            else
            {
                MessageBox.Show("Not enough free seats on the busride.", "Error!", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
예제 #2
0
        private void b_save_Click(object sender, RoutedEventArgs e)
        {
            if (tb_seats.Text == "")
            {
                MessageBox.Show("Empty fields are not allowed.", "Error!", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }



            BookingObject newObject = new BookingObject(oldObject.busride_id, ((TravellerObject)Authenticator.currentUser).email, Int32.Parse(tb_seats.Text));

            if (DBConnection.CheckIfBookingAllowed(newObject))
            {
                if (DBConnection.InsertBooking(newObject) > 0)
                {
                    parentWindow.UpdateAllChain();
                    Close();
                }
            }
            else
            {
                MessageBox.Show("Not enough free seats on the busride.", "Error!", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
예제 #3
0
        public IActionResult AddBooking([FromBody] BookingObject booking)
        {
            if (booking != null)
            {
                _service.AddBooking(booking);
            }

            return(Ok());
        }
예제 #4
0
        public static int DeleteBooking(BookingObject oldObject)
        {
            int affectedRows = -1;

            MessageBoxResult result = MessageBox.Show("Do you wish to remove this booking?", "Warning", MessageBoxButton.YesNo, MessageBoxImage.Warning);

            if (result == MessageBoxResult.Yes)
            {
                affectedRows = ExecuteAndGetNonQuery("DELETE FROM booking WHERE busride_id = :p0 AND traveller = :p1;", oldObject.busride_id, oldObject.traveller);
            }
            return(affectedRows);
        }
예제 #5
0
        public string DeleteBooking(string bookingId)
        {
            BookingObject delbooking = _data.Bookings.SingleOrDefault(item => item.bookingId == bookingId);

            if (delbooking != null)
            {
                _data.Remove(delbooking);
                _data.SaveChanges();
                return("1");
            }
            return("0");
        }
예제 #6
0
        public ChangeBookingWindow(HandleBookingWindow _parent, BookingObject _oldObject)
        {
            InitializeComponent();
            Title              = "Edit Booking - " + Authenticator.GetUserInfo();
            oldObject          = _oldObject;
            tb_busride_id.Text = oldObject.busride_id.ToString();
            tb_traveller.Text  = oldObject.traveller;
            tb_seats.Text      = oldObject.seats.ToString();


            parentWindow = _parent;
            newbooking   = false;
        }
예제 #7
0
        public BookingObject Post(Dictionary <string, string> newBooking)
        {
            BookingObject booking = new BookingObject {
                bookingId      = newBooking["bookingId"], bookingDate = newBooking["bookingDate"],
                meetingDate    = newBooking["meetingDate"], meetingTime = newBooking["meetingTime"], employeeId = newBooking["employeeId"],
                roomId         = newBooking["roomId"], actionRequired = newBooking["actionRequired"], additionalEquipments = newBooking["equip"],
                layoutRequired = newBooking["layoutRequired"]
            };

            // add in try catch blocks
            //check if the user is not already signed in!
            _data.Add(booking);
            _data.SaveChanges();
            return(booking);
        }
예제 #8
0
        private void b_deleteselected_Click(object sender, RoutedEventArgs e)
        {
            if (lv_lista.SelectedItem != null)
            {
                MyBookingObject minBooking = (MyBookingObject)lv_lista.SelectedItem;

                BookingObject booking = new BookingObject(minBooking.busride.busride_id, minBooking.traveller, minBooking.seats);
                if (DBConnection.DeleteBooking(booking) > 0)
                {
                    parentWindow.UpdateAllChain();
                }
            }
            else
            {
                MessageBox.Show("Nothing selected.", "Error!", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
예제 #9
0
        public static bool CheckIfBookingAllowed(BookingObject newObject)
        {
            int max_seats = ExecuteAndGetScalar("SELECT max_seats FROM busride WHERE busride_id = :p0;", newObject.busride_id);

            int currently_booked = ExecuteAndGetScalar("SELECT COALESCE(sum(seats),0) FROM booking WHERE busride_id = :p0;", newObject.busride_id);

            int possibly_current_Selected = ExecuteAndGetScalar("SELECT seats FROM booking WHERE busride_id = :p0 AND traveller = :p1;", newObject.busride_id, newObject.traveller);

            if (possibly_current_Selected == -1)
            {
                possibly_current_Selected = 0;
            }

            if (currently_booked - possibly_current_Selected + newObject.seats <= max_seats)
            {
                return(true);
            }

            return(false);
        }
예제 #10
0
        private void b_cancelselected_Click(object sender, RoutedEventArgs e)
        {
            if (lv_busrides.SelectedItem != null)
            {
                if (!DBConnection.CheckIfHasBooking(((BusrideObject)lv_busrides.SelectedItem).busride_id, ((TravellerObject)Authenticator.currentUser).email))
                {
                    MessageBox.Show("You are not booked on this busride.", "Error!", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }


                BookingObject finderObject = new BookingObject(((BusrideObject)lv_busrides.SelectedItem).busride_id, ((TravellerObject)Authenticator.currentUser).email, -1);
                if (DBConnection.DeleteBooking(finderObject) > 0)
                {
                    UpdateAllChain();
                }
            }
            else
            {
                MessageBox.Show("Nothing selected.", "Error!", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
예제 #11
0
 public IActionResult UpdateBooking(string id, [FromBody] BookingObject booking)
 {
     _service.UpdateBooking(id, booking);
     return(Ok(booking));
 }
예제 #12
0
 public static int UpdateBooking(BookingObject newObject, BookingObject oldObject)
 {
     return(ExecuteAndGetNonQuery("UPDATE booking SET busride_id = :p0, traveller = :p1, seats = :p2 WHERE busride_id = :p3 AND traveller = :p4;", newObject.busride_id, newObject.traveller, newObject.seats, oldObject.busride_id, oldObject.traveller));
 }
예제 #13
0
 public static int InsertBooking(BookingObject newObject)
 {
     return(ExecuteAndGetNonQuery("INSERT INTO booking (busride_id, traveller, seats) values (:p0, :p1, :p2);", newObject.busride_id, newObject.traveller, newObject.seats));
 }