private static StoreObjectType?TryDetectFolderTreeDataStoreObjectType(ICorePropertyBag propertyBag, string itemClass, StoreObjectType detectedType)
        {
            StoreObjectType?result = null;

            if (ObjectClass.IsFolderTreeData(itemClass))
            {
                propertyBag.Load(new StorePropertyDefinition[]
                {
                    FolderTreeDataSchema.GroupSection,
                    FolderTreeDataSchema.Type
                });
                FolderTreeDataSection?valueAsNullable  = propertyBag.GetValueAsNullable <FolderTreeDataSection>(FolderTreeDataSchema.GroupSection);
                FolderTreeDataType?   valueAsNullable2 = propertyBag.GetValueAsNullable <FolderTreeDataType>(FolderTreeDataSchema.Type);
                if (valueAsNullable == FolderTreeDataSection.Calendar)
                {
                    if (valueAsNullable2 == FolderTreeDataType.Header)
                    {
                        result = new StoreObjectType?(StoreObjectType.CalendarGroup);
                    }
                    else if (valueAsNullable2 == FolderTreeDataType.NormalFolder || valueAsNullable2 == FolderTreeDataType.SharedFolder)
                    {
                        result = new StoreObjectType?(StoreObjectType.CalendarGroupEntry);
                    }
                }
                else if (valueAsNullable == FolderTreeDataSection.First)
                {
                    result = new StoreObjectType?(StoreObjectType.FavoriteFolderEntry);
                }
                else if (valueAsNullable == FolderTreeDataSection.Tasks)
                {
                    if (valueAsNullable2 == FolderTreeDataType.Header)
                    {
                        result = new StoreObjectType?(StoreObjectType.TaskGroup);
                    }
                    else if (valueAsNullable2 == FolderTreeDataType.NormalFolder)
                    {
                        result = new StoreObjectType?(StoreObjectType.TaskGroupEntry);
                    }
                }
            }
            return(result);
        }
Exemple #2
0
        internal static bool IsFolderTreeData(IStorePropertyBag row)
        {
            string valueOrDefault = row.GetValueOrDefault <string>(StoreObjectSchema.ItemClass, string.Empty);

            return(ObjectClass.IsFolderTreeData(valueOrDefault));
        }