Example #1
0
        public static void CreateFavoriteAndMailboxTreeAndGetBuddyListStatus(UserContext userContext, out NavigationTree favoritesTree, out MailboxFolderTree mailboxFolderTree, out MailboxFolderTree[] archiveFolderTrees, out bool expandBuddyList)
        {
            NavigationTree.NormalAndSearchFolderList   item;
            NavigationTree.NormalAndSearchFolderList[] array;
            NavigationTree.CreateNormalAndSearchFolderLists(userContext, true, true, out item, out array);
            NavigationNodeCollection navigationCollection        = NavigationNodeCollection.TryCreateNavigationNodeCollection(userContext, userContext.MailboxSession, NavigationNodeGroupSection.First);
            List <NavigationTree.NormalAndSearchFolderList> list = new List <NavigationTree.NormalAndSearchFolderList>(1 + array.Length);

            list.Add(item);
            list.AddRange(array);
            favoritesTree     = NavigationTree.CreateFavoriteTreeByFolderLists(userContext, navigationCollection, list.ToArray());
            mailboxFolderTree = MailboxFolderTree.CreateStartPageMailboxFolderTree(userContext, item.DeepHierarchyFolderList, item.SearchFolderList);
            StatusPersistTreeNodeType valueToTest = StatusPersistTreeNodeType.None;
            object folderProperty = item.DeepHierarchyFolderList.GetFolderProperty(userContext.GetRootFolderId(userContext.MailboxSession), ViewStateProperties.TreeNodeCollapseStatus);

            if (folderProperty is int)
            {
                valueToTest = (StatusPersistTreeNodeType)folderProperty;
            }
            expandBuddyList = !Utilities.IsFlagSet((int)valueToTest, 4);
            bool             flag     = !Utilities.IsFlagSet((int)valueToTest, 2);
            bool             flag2    = !Utilities.IsFlagSet((int)valueToTest, 1);
            OwaStoreObjectId folderId = OwaStoreObjectId.CreateFromMailboxFolderId(userContext.InboxFolderId);

            if (!flag || flag2 || !favoritesTree.RootNode.SelectSpecifiedFolder(folderId))
            {
                mailboxFolderTree.RootNode.SelectSpecifiedFolder(folderId);
            }
            archiveFolderTrees = null;
            if (array.Length > 0)
            {
                List <MailboxFolderTree> list2 = new List <MailboxFolderTree>(array.Length);
                for (int i = 0; i < array.Length; i++)
                {
                    list2.Add(MailboxFolderTree.CreateStartPageArchiveMailboxFolderTree(userContext, array[i].DeepHierarchyFolderList, array[i].SearchFolderList));
                }
                archiveFolderTrees = list2.ToArray();
            }
        }
Example #2
0
        public static NavigationTree[] CreateFavoriteAndNavigationTrees(UserContext userContext, params NavigationNodeGroupSection[] groupSections)
        {
            bool includeSearchFolder = false;

            NavigationTree[]         array = new NavigationTree[groupSections.Length];
            NavigationNodeCollection navigationCollection = null;

            for (int i = 0; i < groupSections.Length; i++)
            {
                if (groupSections[i] == NavigationNodeGroupSection.First)
                {
                    includeSearchFolder = true;
                }
            }
            NavigationTree.NormalAndSearchFolderList   item;
            NavigationTree.NormalAndSearchFolderList[] array2;
            NavigationTree.CreateNormalAndSearchFolderLists(userContext, false, includeSearchFolder, out item, out array2);
            NavigationNodeCollection[]      array3 = NavigationNodeCollection.TryCreateNavigationNodeCollections(userContext, userContext.MailboxSession, groupSections);
            List <NavigationNodeCollection> list   = new List <NavigationNodeCollection>();

            for (int j = 0; j < array3.Length; j++)
            {
                NavigationNodeGroupSection navigationNodeGroupSection = array3[j].GroupSection;
                if (navigationNodeGroupSection != NavigationNodeGroupSection.First)
                {
                    if ((navigationNodeGroupSection == NavigationNodeGroupSection.Calendar && userContext.IsFeatureEnabled(Feature.Calendar)) || (navigationNodeGroupSection == NavigationNodeGroupSection.Contacts && userContext.IsFeatureEnabled(Feature.Contacts)) || (navigationNodeGroupSection == NavigationNodeGroupSection.Tasks && userContext.IsFeatureEnabled(Feature.Tasks)))
                    {
                        list.Add(array3[j]);
                    }
                }
                else
                {
                    navigationCollection = array3[j];
                }
            }
            List <NavigationTree.NormalAndSearchFolderList> list2 = new List <NavigationTree.NormalAndSearchFolderList>(1 + array2.Length);

            list2.Add(item);
            list2.AddRange(array2);
            List <FolderList> list3 = new List <FolderList>();

            foreach (NavigationTree.NormalAndSearchFolderList normalAndSearchFolderList in list2)
            {
                list3.Add(normalAndSearchFolderList.DeepHierarchyFolderList);
            }
            NavigationTree[] array4 = NavigationTree.CreateNavigationTreeByFolderLists(userContext, list3.ToArray(), list.ToArray());
            for (int k = 0; k < groupSections.Length; k++)
            {
                if (groupSections[k] == NavigationNodeGroupSection.First)
                {
                    array[k] = NavigationTree.CreateFavoriteTreeByFolderLists(userContext, navigationCollection, list2.ToArray());
                }
                else
                {
                    array[k] = null;
                    for (int l = 0; l < array4.Length; l++)
                    {
                        if (array4[l].groupSection == groupSections[k])
                        {
                            array[k] = array4[l];
                            break;
                        }
                    }
                }
            }
            return(array);
        }