/// <summary> /// Assigns free busy times to the exchange users that are passed into the method /// </summary> public virtual void GetCalendarInfoForUsers(ExchangeUserDict users, DateTimeRange window) { // Perform appointment lookup in parallel with FB lookup using (AppointmentLookupFuture future = new AppointmentLookupFuture(this, users, window)) { Dictionary <ExchangeUser, FreeBusy> freeBusyBlocks = freebusy.LookupFreeBusyTimes(users, window); foreach (ExchangeUser user in users.Values) { // If the server gave us no data for a user, that's // fine. We just skip the user. if (!freeBusyBlocks.ContainsKey(user)) { continue; } /* Retrieve the free busy blocks */ FreeBusy freeBusy = freeBusyBlocks[user]; user.AccessLevel = GCalAccessLevel.ReadAccess; List <Appointment> appointments = future.getResult(user); MergeFreeBusyWithAppointments( user, freeBusy, appointments, window); } } }
/// <summary> /// Assigns free busy times to the exchange users that are passed into the method /// </summary> public virtual void GetCalendarInfoForUsers(ExchangeUserDict users, DateTimeRange window) { // Perform appointment lookup in parallel with FB lookup using (AppointmentLookupFuture future = new AppointmentLookupFuture(this, users, window)) { Dictionary<ExchangeUser, FreeBusy> freeBusyBlocks = freebusy.LookupFreeBusyTimes(users, window); foreach (ExchangeUser user in users.Values) { // If the server gave us no data for a user, that's // fine. We just skip the user. if (!freeBusyBlocks.ContainsKey(user)) continue; /* Retrieve the free busy blocks */ FreeBusy freeBusy = freeBusyBlocks[user]; user.AccessLevel = GCalAccessLevel.ReadAccess; List<Appointment> appointments = future.getResult(user); MergeFreeBusyWithAppointments( user, freeBusy, appointments, window); } } }