public void AddBooking(AnimalBooking bookingModel) { using (var db = new ZooDataBaseContext()) { var registeredBooking = db.Bookings .Where(b => b.DateTime == bookingModel.DateTime && b.VeterinaryId == bookingModel.VeterinaryId && b.AnimalId == bookingModel.AnimalId) .Select(b => b).FirstOrDefault(); if (registeredBooking != null) { throw new AddingDuplicateException("Bokningen finns redan."); } else { var animal = db.Animals.Find(bookingModel.AnimalId); var vet = db.Veterinarians.Find(bookingModel.VeterinaryId); db.Bookings.Add(new Booking() { Animal = animal, Veterinarian = vet, DateTime = bookingModel.DateTime }); db.SaveChanges(); } } }
private void ValidateRequiredFields(AnimalBooking booking, AnimalSimple animal, Diagnosis diagnose, List <string> medications) { StringBuilder sb = new StringBuilder(); if (booking == null) { throw new RequiredFieldsNullException("Fel. En bokning måste väljas för att ställa diagnos"); } if (animal == null) { throw new RequiredFieldsNullException("Fel. Inget djur är valt"); } if (diagnose == null) { throw new RequiredFieldsNullException("Fel. Ingen diagnos är vald"); } if (medications.Count == 0) { throw new RequiredFieldsNullException("Fel. Ingen medicin är vald"); } }
private void ButtonMakeBooking_OnClick(object sender, RoutedEventArgs e) { try { var date = GetSelectedDateTime(); var vet = (Veterinary)ComboBoxVeterinarians.SelectedItem; var animal = (AnimalSimple)ListBoxNameResult.SelectedItem; ValidateRequriedBookingFields(date, vet, animal); var booking = new AnimalBooking() { AnimalId = animal.AnimalId, AnimalName = animal.Name, DateTime = date, VeterinaryId = vet.Id, VeterinaryName = vet.Name }; DataAccessZoo dataAccess = new DataAccessZoo(); dataAccess.AddBooking(booking); MessageBox.Show("Bokningen är inlagd!"); UpdateCurrentBookingsListBox(); } catch (AddingDuplicateException exception) { MessageBox.Show(exception.Message); } catch (InvalidBookingDateTimeException exception) { MessageBox.Show(exception.Message); } catch (RequiredFieldsNullException exception) { MessageBox.Show(exception.Message); } }