// Token: 0x060014A1 RID: 5281 RVA: 0x000491C4 File Offset: 0x000473C4 public int DetermineSortGroupPriority(IStorePropertyBag folder) { StoreObjectId objectId = ((VersionedId)folder.TryGetProperty(FolderSchema.Id)).ObjectId; int valueOrDefault = folder.GetValueOrDefault <int>(FolderSchema.PeopleHubSortGroupPriorityVersion, -1); int num = folder.GetValueOrDefault <int>(FolderSchema.PeopleHubSortGroupPriority, -1); bool valueOrDefault2 = folder.GetValueOrDefault <bool>(FolderSchema.IsPeopleConnectSyncFolder, false); if (valueOrDefault == 2 && num >= 0) { return(num); } if (object.Equals(objectId, this.DefaultContactsFolderId)) { num = 2; } else if (object.Equals(objectId, this.QuickContactsFolderId)) { num = 4; } else if (valueOrDefault2) { num = 3; } else { num = 10; } using (IFolder folder2 = this.xsoFactory.BindToFolder(this.session, objectId)) { PeopleFilterGroupPriorityManager.SetSortGroupPriorityOnFolder(folder2, num); folder2.Save(); } return(num); }
protected override bool InternalExecute() { ExchangeVersion.Current = ExchangeVersion.Latest; MailboxSession mailboxIdentityMailboxSession = base.MailboxIdentityMailboxSession; IdAndSession idAndSession = base.IdConverter.ConvertFolderIdToIdAndSession(this.folderId, IdConverter.ConvertOption.IgnoreChangeKey); AggregateOperationResult aggregateOperationResult = mailboxIdentityMailboxSession.Delete(DeleteItemFlags.MoveToDeletedItems, new StoreId[] { idAndSession.Id }); if (aggregateOperationResult.OperationResult == OperationResult.Succeeded) { PeopleFilterGroupPriorityManager peopleFilterGroupPriorityManager = new PeopleFilterGroupPriorityManager(mailboxIdentityMailboxSession, new XSOFactory()); mailboxIdentityMailboxSession.ContactFolders.MyContactFolders.Set(peopleFilterGroupPriorityManager.GetMyContactFolderIds()); return(true); } return(false); }
protected override ContactFolderResponse InternalExecute() { ExchangeVersion.Current = ExchangeVersion.Latest; MailboxSession mailboxIdentityMailboxSession = base.MailboxIdentityMailboxSession; IdAndSession idAndSession = base.IdConverter.ConvertFolderIdToIdAndSession(this.parentFolderId, IdConverter.ConvertOption.IgnoreChangeKey); StoreId id; try { using (Folder folder = ContactsFolder.Create(mailboxIdentityMailboxSession, idAndSession.Id, StoreObjectType.ContactsFolder, this.displayName, CreateMode.CreateNew)) { PeopleFilterGroupPriorityManager.SetSortGroupPriorityOnFolder(folder, this.priority); folder.Save(); folder.Load(new PropertyDefinition[] { FolderSchema.Id }); id = folder.Id; } } catch (ObjectExistedException) { return(new ContactFolderResponse { ResponseCode = ResponseCodeType.ErrorFolderExists.ToString() }); } PeopleFilterGroupPriorityManager peopleFilterGroupPriorityManager = new PeopleFilterGroupPriorityManager(mailboxIdentityMailboxSession, new XSOFactory()); mailboxIdentityMailboxSession.ContactFolders.MyContactFolders.Set(peopleFilterGroupPriorityManager.GetMyContactFolderIds()); ConcatenatedIdAndChangeKey concatenatedId = IdConverter.GetConcatenatedId(id, new MailboxId(mailboxIdentityMailboxSession), null); return(new ContactFolderResponse { ResponseCode = ResponseCodeType.NoError.ToString(), FolderId = new FolderId { Id = concatenatedId.Id, ChangeKey = concatenatedId.ChangeKey } }); }
// Token: 0x06001A99 RID: 6809 RVA: 0x00063744 File Offset: 0x00061944 protected override PeopleFilter[] InternalExecute() { UserContext userContext = UserContextManager.GetUserContext(CallContext.Current.HttpContext, CallContext.Current.EffectiveCaller, true); ExchangeVersion.Current = ExchangeVersion.Latest; MailboxSession mailboxIdentityMailboxSession = base.MailboxIdentityMailboxSession; MailboxId mailboxId = new MailboxId(mailboxIdentityMailboxSession); List <PeopleFilter> list = new List <PeopleFilter>(); list.Add(this.MakePeopleFilter(mailboxIdentityMailboxSession.GetDefaultFolderId(DefaultFolderType.MyContacts), mailboxIdentityMailboxSession.GetDefaultFolderId(DefaultFolderType.Configuration), mailboxId, ClientStrings.MyContactsFolderName.ToString(), 1, true)); PeopleFilterGroupPriorityManager peopleFilterGroupPriorityManager = new PeopleFilterGroupPriorityManager(mailboxIdentityMailboxSession, new XSOFactory()); foreach (IStorePropertyBag storePropertyBag in new ContactFoldersEnumerator(mailboxIdentityMailboxSession, new XSOFactory(), ContactFoldersEnumeratorOptions.SkipHiddenFolders | ContactFoldersEnumeratorOptions.SkipDeletedFolders, PeopleFilterGroupPriorityManager.RequiredFolderProperties)) { StoreObjectId objectId = ((VersionedId)storePropertyBag.TryGetProperty(FolderSchema.Id)).ObjectId; StoreObjectId parentId = storePropertyBag.TryGetProperty(StoreObjectSchema.ParentItemId) as StoreObjectId; string valueOrDefault = storePropertyBag.GetValueOrDefault <string>(FolderSchema.DisplayName, string.Empty); int sortGroupPriority = peopleFilterGroupPriorityManager.DetermineSortGroupPriority(storePropertyBag); ExtendedFolderFlags valueOrDefault2 = storePropertyBag.GetValueOrDefault <ExtendedFolderFlags>(FolderSchema.ExtendedFolderFlags, (ExtendedFolderFlags)0); bool isReadOnly = (valueOrDefault2 & ExtendedFolderFlags.ReadOnly) == ExtendedFolderFlags.ReadOnly; list.Add(this.MakePeopleFilter(objectId, parentId, mailboxId, valueOrDefault, sortGroupPriority, isReadOnly)); } if (userContext.FeaturesManager.ClientServerSettings.OwaPublicFolders.Enabled) { IFavoritePublicFoldersManager favoritePublicFoldersManager = new FavoritePublicFoldersManager(mailboxIdentityMailboxSession); List <IFavoritePublicFolder> list2 = new List <IFavoritePublicFolder>(); using (IEnumerator <IFavoritePublicFolder> enumerator2 = favoritePublicFoldersManager.EnumerateContactsFolders().GetEnumerator()) { while (enumerator2.MoveNext()) { IFavoritePublicFolder folder = enumerator2.Current; if (!list2.Exists((IFavoritePublicFolder storedFavorite) => storedFavorite.FolderId.Equals(folder.FolderId))) { list2.Add(folder); } } } if (list2.Count > 0) { for (int i = 0; i < list2.Count; i++) { list.Add(this.MakePublicFolderPeopleFilter(list2[i], i)); } } } ClientSecurityContext clientSecurityContext = base.CallContext.EffectiveCaller.ClientSecurityContext; IExchangePrincipal mailboxOwner = base.MailboxIdentityMailboxSession.MailboxOwner; AddressLists addressLists = new AddressLists(clientSecurityContext, mailboxOwner, userContext); if (addressLists.GlobalAddressList != null) { list.Add(new PeopleFilter { DisplayName = addressLists.GlobalAddressList.DisplayName, FolderId = new AddressListId { Id = addressLists.GlobalAddressList.Id.ObjectGuid.ToString() }, SortGroupPriority = 1000, IsReadOnly = true }); } if (addressLists.AllRoomsAddressList != null) { list.Add(new PeopleFilter { DisplayName = addressLists.AllRoomsAddressList.DisplayName, FolderId = new AddressListId { Id = addressLists.AllRoomsAddressList.Id.ObjectGuid.ToString() }, SortGroupPriority = 1001, IsReadOnly = true }); } foreach (AddressBookBase addressBookBase in addressLists.AllAddressLists) { if ((addressLists.GlobalAddressList == null || !addressBookBase.Id.Equals(addressLists.GlobalAddressList.Id)) && (addressLists.AllRoomsAddressList == null || !addressBookBase.Id.Equals(addressLists.AllRoomsAddressList.Id)) && !string.IsNullOrEmpty(addressBookBase.RecipientFilter) && (!addressBookBase.IsModernGroupsAddressList || userContext.FeaturesManager.ClientServerSettings.ModernGroups.Enabled)) { list.Add(new PeopleFilter { DisplayName = addressBookBase.DisplayName, FolderId = new AddressListId { Id = addressBookBase.Id.ObjectGuid.ToString() }, SortGroupPriority = (addressBookBase.IsModernGroupsAddressList ? 1009 : this.GetSortGroupPriority(addressBookBase.RecipientFilter)), IsReadOnly = true }); } } list.Sort(new PeopleFilterComparer(mailboxIdentityMailboxSession.PreferedCulture)); return(list.ToArray()); }