Exemple #1
0
        private void bokaBtn_Click(object sender, EventArgs e)
        {
            errorProvider1.Clear();
            bool error = false;

            if (string.IsNullOrEmpty(purposeBox.Text))
            {
                errorProvider1.SetError(purposeBox, "Vänligen ange syfte till bokningen.");
                error = true;
            }

            if (string.IsNullOrWhiteSpace(startTime2.Text))
            {
                errorProvider1.SetError(startTime2, "Vänligen ange önskad besökstid.");
                error = true;
            }

            if (string.IsNullOrWhiteSpace(endTime2.Text))
            {
                errorProvider1.SetError(endTime2, "Vänligen ange önskad besökstid.");
                error = true;
            }

            if (string.IsNullOrWhiteSpace(doctorComboBox.Text))
            {
                errorProvider1.SetError(doctorComboBox, "Vänligen ange önskad läkare.");
                error = true;
            }

            if (!error)
            {
                int id;
                //booking_id = 0 means it's a new booking
                if (booking_id == 0)
                {
                    id = Guid.NewGuid().GetHashCode();
                }
                else
                {
                    id = booking_id;
                }
                string   personnummer      = bookingPersonNrBox.Text;
                string   patientname       = bookingPatientName.Text;
                DateTime bookingdate       = dateTimePicker1.Value;
                DateTime bookingtimeStart  = dateTimePicker1.Value.Add(startTime2.Value.TimeOfDay.Duration());
                DateTime bookingtimeEnd    = dateTimePicker1.Value.Add(endTime2.Value.TimeOfDay.Duration());
                string   doctor            = (doctorComboBox.SelectedItem as Employee).EmployeeID;
                string   purpose           = purposeBox.Text;
                string   room              = (roomComboBox.SelectedItem as Room).RoomID;
                int      compareTimeValues = bookingtimeStart.CompareTo(bookingtimeEnd);

                if (compareTimeValues >= 0)
                {
                    errorProvider1.SetError(startTime2, "Vänligen ange giltig besökstid.");
                    error = true;
                }

                DatabaseHandler db = new DatabaseHandler();

                List <Booking> overlapCheck = db.TimeOverlapCheckBooking(bookingtimeStart, bookingtimeEnd);
                if (overlapCheck.Any())
                {
                    foreach (Booking booking in overlapCheck)
                    {
                        if (booking.BookingID != id)
                        {
                            if (doctor.Equals(booking.Staff_ID))
                            {
                                errorProvider1.SetError(doctorComboBox, "Läkaren har redan ett besök inbokat. Vänligen ange annan tid.");
                                error = true;
                            }
                            if (personnummer.Equals(booking.Patient_ID))
                            {
                                errorProvider1.SetError(bookingPatientName, "Patienten har redan ett besök inbokat. Vänligen ange annan tid.");
                                error = true;
                            }
                            if (room.Equals(booking.RoomNr))
                            {
                                errorProvider1.SetError(roomComboBox, "Rummet är redan upptagen vid angiven tid. Vänligen välj annat rum.");
                                error = true;
                            }
                        }
                    }
                }

                if (!error)
                {
                    Booking newBooking = new Booking(id, purpose, bookingtimeStart, bookingtimeEnd, doctor, personnummer, room);
                    Boolean success    = db.AddBooking(newBooking);

                    if (success)
                    {
                        MessageBox.Show("Bokning har sparats.");
                        this.Close();
                    }
                }
            }
        }