diff --git a/Server/Server/DB/FoodPlaceDB.cs b/Server/Server/DB/FoodPlaceDB.cs index afc5e77..13a55b2 100644 --- a/Server/Server/DB/FoodPlaceDB.cs +++ b/Server/Server/DB/FoodPlaceDB.cs @@ -24,18 +24,29 @@ namespace Server.DB { using (Context ctx = new Context()) { - var city = ctx.Cities.FirstOrDefault(c => c.CityID == foodplace.City.CityID); - var country = ctx.Countries.FirstOrDefault(c => c.CountryID == foodplace.City.Country.CountryID); + var foodplaceFromDB = ctx.FoodPlaces.SingleOrDefault(x => x.Name == foodplace.Name + && x.Streetname == foodplace.Streetname + && x.Streetnumber == foodplace.Streetnumber + && x.City.CityID == foodplace.City.CityID); + if (foodplaceFromDB != null) + { + return true; + } + else + { + var city = ctx.Cities.FirstOrDefault(c => c.CityID == foodplace.City.CityID); + var country = ctx.Countries.FirstOrDefault(c => c.CountryID == foodplace.City.Country.CountryID); - ctx.Cities.Attach(city); - ctx.Countries.Attach(country); + ctx.Cities.Attach(city); + ctx.Countries.Attach(country); - foodplace.City = city; + foodplace.City = city; - ctx.FoodPlaces.Add(foodplace); - ctx.SaveChanges(); + ctx.FoodPlaces.Add(foodplace); + ctx.SaveChanges(); + return true; + } } - return true; } catch (Exception e) { diff --git a/Server/Server/DB/PatientAtFoodPlaceDB.cs b/Server/Server/DB/PatientAtFoodPlaceDB.cs index 0851fe4..964a177 100644 --- a/Server/Server/DB/PatientAtFoodPlaceDB.cs +++ b/Server/Server/DB/PatientAtFoodPlaceDB.cs @@ -26,31 +26,40 @@ namespace Server.DB { using (Context ctx = new Context()) { - var patient = ctx.Persons.FirstOrDefault(p => p.PersonID == patientAtFoodPlace.Patient.PersonID); - var foodplace = ctx.FoodPlaces.FirstOrDefault(f => f.FoodPlaceID == patientAtFoodPlace.FoodPlace.FoodPlaceID); - var pcity = ctx.Cities.FirstOrDefault(c => c.CityID == patient.City.CityID); - var fcity = ctx.Cities.FirstOrDefault(c => c.CityID == patientAtFoodPlace.FoodPlace.City.CityID); - var pcountry = ctx.Countries.FirstOrDefault(c => c.CountryID == pcity.Country.CountryID); - var fcountry = ctx.Countries.FirstOrDefault(c => c.CountryID == fcity.Country.CountryID); - var salutation = ctx.Salutations.FirstOrDefault(s => s.SalutationID == patient.Salutation.SalutationID); - var gender = ctx.Genders.FirstOrDefault(g => g.GenderID == patient.Gender.GenderID); + var relation = ctx.PatientAtFoodPlaces.SingleOrDefault(x => x.Patient.PersonID == patientAtFoodPlace.Patient.PersonID + && x.FoodPlace.FoodPlaceID == patientAtFoodPlace.FoodPlace.FoodPlaceID); + if (relation != null) + { + return true; + } + else + { + var patient = ctx.Persons.FirstOrDefault(p => p.PersonID == patientAtFoodPlace.Patient.PersonID); + var foodplace = ctx.FoodPlaces.FirstOrDefault(f => f.FoodPlaceID == patientAtFoodPlace.FoodPlace.FoodPlaceID); + var pcity = ctx.Cities.FirstOrDefault(c => c.CityID == patient.City.CityID); + var fcity = ctx.Cities.FirstOrDefault(c => c.CityID == patientAtFoodPlace.FoodPlace.City.CityID); + var pcountry = ctx.Countries.FirstOrDefault(c => c.CountryID == pcity.Country.CountryID); + var fcountry = ctx.Countries.FirstOrDefault(c => c.CountryID == fcity.Country.CountryID); + var salutation = ctx.Salutations.FirstOrDefault(s => s.SalutationID == patient.Salutation.SalutationID); + var gender = ctx.Genders.FirstOrDefault(g => g.GenderID == patient.Gender.GenderID); - ctx.Cities.Attach(pcity); - ctx.Cities.Attach(fcity); - ctx.Countries.Attach(pcountry); - ctx.Countries.Attach(fcountry); - ctx.Genders.Attach(gender); - ctx.Salutations.Attach(salutation); - ctx.Persons.Attach(patient); - ctx.FoodPlaces.Attach(foodplace); + ctx.Cities.Attach(pcity); + ctx.Cities.Attach(fcity); + ctx.Countries.Attach(pcountry); + ctx.Countries.Attach(fcountry); + ctx.Genders.Attach(gender); + ctx.Salutations.Attach(salutation); + ctx.Persons.Attach(patient); + ctx.FoodPlaces.Attach(foodplace); - patientAtFoodPlace.FoodPlace = foodplace; - patientAtFoodPlace.Patient = patient; + patientAtFoodPlace.FoodPlace = foodplace; + patientAtFoodPlace.Patient = patient; - ctx.PatientAtFoodPlaces.Add(patientAtFoodPlace); - ctx.SaveChanges(); + ctx.PatientAtFoodPlaces.Add(patientAtFoodPlace); + ctx.SaveChanges(); + return true; + } } - return true; } catch (Exception e) {