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(); } } } }