Example #1
0
        /// <summary>
        /// Prompts the user which view or property grouping to go int.
        /// </summary>
        /// <param name="itemsToChooseFrom">The items at this level.</param>
        /// <param name="quit">If true, the user chose to quit rather than navigate.</param>
        /// <returns>The selected item to navigate to, or null to go back a folder.</returns>
        private static FolderContentItem GetNextNavigationItem(FolderContentItems itemsToChooseFrom, out bool quit)
        {
            int selectedIndex = -1;

            quit = false;

            // As the user to select a number to go to, or q to exit.
            while (selectedIndex == -1)
            {
                // Prompt the user.
                Console.WriteLine("Enter the number of the item to navigate to, or q to exit.");
                var enteredText = Console.ReadLine();

                // Did they ask to quit?
                if ("q".Equals(enteredText, StringComparison.InvariantCultureIgnoreCase))
                {
                    // Quit!
                    quit = true;
                    return(null);
                }

                // Did they select a valid item?
                if (Int32.TryParse(enteredText, out selectedIndex) && selectedIndex >= 0 && selectedIndex <= itemsToChooseFrom.Items.Count)
                {
                    // It was valid, but what did they select?

                    // 0 == go up a view.
                    if (selectedIndex == 0)
                    {
                        return(null);
                    }
                    else
                    {
                        // Get the item selected.
                        var nextNavItem = itemsToChooseFrom.Items[selectedIndex - 1];

                        // Navigate to the new level.
                        return(nextNavItem);
                    }
                }

                // Not a valid item - ask again.
                selectedIndex = -1;
            }

            return(null);
        }
Example #2
0
        private void ListFolderContentItems(FolderContentItems folderContentItems)
        {
            foreach (FolderContentItem f in folderContentItems)
            {
                switch (f.FolderContentItemType)
                {
                case MFFolderContentItemType.MFFolderContentItemTypeViewFolder:
                    Console.WriteLine("MFFolderContentItemType.MFFolderContentItemTypeViewFolder");     // do something with View
                    Console.WriteLine("View id: {0}, View name: {1}, Viewtype: {2}, IsCommon: {3}, HasParent: {4}.", f.View.ID, f.View.Name, f.View.ViewType, f.View.Common, f.View.HasParent);
                    break;

                case MFFolderContentItemType.MFFolderContentItemTypeUnknown:
                    Console.WriteLine("MFFolderContentItemType.MFFolderContentItemTypeUnknown");     // do something with Unknown?
                    break;

                case MFFolderContentItemType.MFFolderContentItemTypeTraditionalFolder:
                    Console.WriteLine("MFFolderContentItemType.MFFolderContentItemTypeTraditionalFolder");     // do something with traditional folder
                    Console.WriteLine("Traditional folder DisplayValue: {0}, ObjectType: {1}, ObjectFlags: {2}.", f.TraditionalFolder.DisplayValue, f.TraditionalFolder.ObjectType, f.TraditionalFolder.ObjectFlags);
                    break;

                case MFFolderContentItemType.MFFolderContentItemTypePropertyFolder:
                    Console.WriteLine("MFFolderContentItemType.MFFolderContentItemTypePropertyFolder");     // do something with propertyfolder (grouping)
                    Console.WriteLine("PropertyFolder DisplayValue: {0}, Value (ID means valuelist lookup): {1}.", f.PropertyFolder.DisplayValue, f.PropertyFolder.Value);
                    break;

                case MFFolderContentItemType.MFFolderContentItemTypeObjectVersion:
                    Console.WriteLine("MFFolderContentItemType.MFFolderContentItemTypeObjectVersion");     // do something with object
                    Console.WriteLine("ObjectVersion Title: {0}, FilesCount: {1}, Class: {2}.", f.ObjectVersion.Title, f.ObjectVersion.FilesCount, f.ObjectVersion.Class);
                    break;

                case MFFolderContentItemType.MFFolderContentItemTypeExternalViewFolder:
                    Console.WriteLine("MFFolderContentItemType.MFFolderContentItemTypeExternalViewFolder");     // do something with object
                    Console.WriteLine("ExternalView Displayname: {0}, ID: {1}.", f.ExternalView.DisplayName, f.ExternalView.ID);
                    break;

                default:
                    break;
                }
            }
        }