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); }
internal static bool IsFolderTreeData(IStorePropertyBag row) { string valueOrDefault = row.GetValueOrDefault <string>(StoreObjectSchema.ItemClass, string.Empty); return(ObjectClass.IsFolderTreeData(valueOrDefault)); }