Ejemplo n.º 1
0
        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);
                    }
                }
            }
        }