private void UpdateDoctoredServices(string[] selectedServices, Doctor doctorToUpdate) { if (selectedServices == null) { doctorToUpdate.DoctorServices = new List <DoctorService>(); return; } var selectedServicesHS = new HashSet <string>(selectedServices); var doctorServices = new HashSet <int> (doctorToUpdate.DoctorServices.Select(c => c.Service.ID)); foreach (var service in _context.Services) { if (selectedServicesHS.Contains(service.ID.ToString())) { if (!doctorServices.Contains(service.ID)) { doctorToUpdate.DoctorServices.Add(new DoctorService { DoctorID = doctorToUpdate.ID, ServiceID = service.ID }); } } else { if (doctorServices.Contains(service.ID)) { DoctorService serviceToRemove = doctorToUpdate.DoctorServices.FirstOrDefault(i => i.ServiceID == service.ID); _context.Remove(serviceToRemove); } } } }