コード例 #1
0
        public override IReadOnlyCollection <ServiceBase> GetServices()
        {
            var primaryService     = TherapySession.PrimaryService;
            var additionalServices = AppointmentAdditionalServices
                                     .Select(join => join.AdditionalService)
                                     .Concat(new ServiceBase[] { primaryService })
                                     .ToArray();

            return(additionalServices);
        }
コード例 #2
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);
        }