private void Boom(IEnumerable <TimeEventAppointment> appts, Event e, EventCreator eventCreator, IEnumerable <Event> patternExceptionEvents) { _session.BeginTransaction(); foreach (var newEvent in appts.Select(a => eventCreator.CreateEvent(a, e))) { foreach (var el in e.EventLocations) { var newEl = new EventLocation(_session) { Event = newEvent, Location = el.Location }; newEl.Save(); foreach (var newLe in el.Educators.Select(le => new LocationEducator(_session) { Educator = le.Educator, EducatorEmployment = le.EducatorEmployment, EventLocation = newEl })) { newLe.Save(); } } } _session.Delete(patternExceptionEvents); _session.Save(patternExceptionEvents); e.Delete(); _session.CommitTransaction(); }
private void ProcessWholePattern(Event patternEvnt, IEnumerable <Event> patternExceptionEvents) { var wholePattern = patternExceptionEvents.ToList(); wholePattern.Add(patternEvnt); using (var appointmentsRepository = new BasicTimeEventAppointmentsRepository(new CommonEventSchedulerStorageInitializer(wholePattern))) { var appts = appointmentsRepository.GetAppointments(); var eventCreator = new EventCreator(appointmentsRepository.SchedulerStorage); Boom(appts, patternEvnt, eventCreator, patternExceptionEvents); } }