private void SwitchEventCategories(ChangedOptions changedOption, string oldCategory, string newCategory) { using (var calendarFolderWrapper = GenericComObjectWrapper.Create( (Folder)_session.GetFolderFromID(changedOption.New.OutlookFolderEntryId, changedOption.New.OutlookFolderStoreId))) { bool isInstantSearchEnabled = false; try { using (var store = GenericComObjectWrapper.Create(calendarFolderWrapper.Inner.Store)) { if (store.Inner != null) { isInstantSearchEnabled = store.Inner.IsInstantSearchEnabled; } } } catch (COMException) { s_logger.Info("Can't access IsInstantSearchEnabled property of store, defaulting to false."); } var filterBuilder = new StringBuilder(_daslFilterProvider.GetAppointmentFilter(isInstantSearchEnabled)); OutlookEventRepository.AddCategoryFilter(filterBuilder, oldCategory, false); var eventIds = OutlookEventRepository.QueryFolder(_session, calendarFolderWrapper, filterBuilder).Select(e => e.Id); // todo concat Ids from cache foreach (var eventId in eventIds) { try { SwitchEventCategories(changedOption, oldCategory, newCategory, eventId); } catch (Exception x) { s_logger.Error(null, x); } } } }
private void SwitchCategories(ChangedOptions changedOption, string oldCategory, string newCategory) { using (var calendarFolderWrapper = GenericComObjectWrapper.Create( (Folder)_session.GetFolderFromID(changedOption.New.OutlookFolderEntryId, changedOption.New.OutlookFolderStoreId))) { var filterBuilder = new StringBuilder(OutlookEventRepository.PR_MESSAGE_CLASS_DASLFILTER); OutlookEventRepository.AddCategoryFilter(filterBuilder, oldCategory); var eventIds = OutlookEventRepository.QueryFolder(_session, calendarFolderWrapper, filterBuilder).Select(e => e.Id); // todo concat Ids from cache foreach (var eventId in eventIds) { try { SwitchCategories(changedOption, oldCategory, newCategory, eventId); } catch (Exception x) { s_logger.Error(null, x); } } } }