Exemple #1
0
        public void SetAdditionalServices(IEnumerable <AdditionalService> newAdditionalServices)
        {
            var existingAdditionalServices = AppointmentAdditionalServices
                                             .Select(service => service.AdditionalService)
                                             .ToArray();
            var removedAppointmentServices = existingAdditionalServices.Except(newAdditionalServices)
                                             .Select(additionalService =>
                                                     AppointmentAdditionalServices.Single(join => join.AdditionalService.Id == additionalService.Id))
                                             .ToArray();
            var addedServices = newAdditionalServices.Except(existingAdditionalServices)
                                .Select(additionalService => new AppointmentAdditionalService(additionalService, this))
                                .ToArray();

            AppointmentAdditionalServices.RemoveRange(removedAppointmentServices);
            AppointmentAdditionalServices.AddRange(addedServices);
        }