internal static void AddGSCalendarToSharedFoldersGroup(UserContext userContext, ExchangePrincipal exchangePrincipal) { NavigationNodeCollection navigationNodeCollection = NavigationNodeCollection.TryCreateNavigationNodeCollection(userContext, userContext.MailboxSession, NavigationNodeGroupSection.Calendar); if (navigationNodeCollection.FindGSCalendarsByLegacyDN(exchangePrincipal.LegacyDn).Length == 0) { int defaultGroup = navigationNodeCollection.GetDefaultGroup(NavigationNodeGroupType.SharedFoldersGroup); NavigationNodeGroup navigationNodeGroup = navigationNodeCollection[defaultGroup]; NavigationNodeFolder node = NavigationNodeFolder.CreateGSNode(exchangePrincipal, navigationNodeGroup.NavigationNodeGroupClassId, navigationNodeGroup.Subject, exchangePrincipal.MailboxInfo.DisplayName, navigationNodeGroup.NavigationNodeGroupSection); navigationNodeGroup.Children.Insert(navigationNodeGroup.Children.Count, node); navigationNodeCollection.Save(userContext.MailboxSession); } }
internal static void AddNonMailFolderToSharedFoldersGroup(UserContext userContext, Folder folder, NavigationNodeGroupSection groupSection) { if (groupSection == NavigationNodeGroupSection.Mail) { throw new ArgumentOutOfRangeException("Cannot add mail folder to shared folder group"); } NavigationNodeCollection navigationNodeCollection = NavigationNodeCollection.TryCreateNavigationNodeCollection(userContext, userContext.MailboxSession, groupSection); if (navigationNodeCollection.FindFoldersById(folder.Id.ObjectId).Length == 0) { navigationNodeCollection.AddFolderToDefaultGroup(userContext, NavigationNodeGroupType.SharedFoldersGroup, folder, true); navigationNodeCollection.Save(userContext.MailboxSession); } }
// Token: 0x0600078C RID: 1932 RVA: 0x00039720 File Offset: 0x00037920 public static int GetCalendarFolderColor(UserContext userContext, NavigationNodeCollection navigationNodeCollection, NavigationNodeFolder[] navigationNodeFolders) { CalendarColorManager.ThrowIfCannotActAsOwner(userContext); int num = -2; if (navigationNodeFolders != null && navigationNodeFolders.Length > 0) { num = navigationNodeFolders[0].NavigationNodeCalendarColor; } if (!CalendarColorManager.IsColorIndexValid(num)) { num = -2; foreach (NavigationNodeFolder navigationNodeFolder in navigationNodeFolders) { navigationNodeFolder.NavigationNodeCalendarColor = num; } navigationNodeCollection.Save(userContext.MailboxSession); } return(num); }