/// <summary> /// Scarica le informazioni su una determinata Folder. /// Nota: se la Folder non esiste, viene preventivamente creata /// </summary> /// <param name="context">Il ClientContext di riferimento</param> /// <param name="listName">Il nome della List nella quale cercare oppure creare la Folder</param> /// <param name="folderName">Il nome della Folder da restituire. Se non passato, viene ricercata la RootFolder della List di riferimento</param> /// <returns>L'oggetto Folder di riferimento</returns> private static Folder GetOrCreateFolder(ClientContext context, string listName, string folderName) { List list = LoadList(context, listName); context.Load(list.RootFolder); context.Load(list.RootFolder.Folders); context.ExecuteQuery(); if (folderName == null) { return(list.RootFolder); } string folderUrl = String.Format("{0}/{1}/{2}", SitePath, listName, folderName); FolderCollection folders = list.RootFolder.Folders; var existingFolders = context.LoadQuery <Folder>( folders.Where(folder => folder.ServerRelativeUrl == folderUrl) ); context.ExecuteQuery(); Folder result = existingFolders.FirstOrDefault(); if (result != null) { context.Load(result); context.Load(result.Files); context.ExecuteQuery(); return(result); } var itemCreateInfo = new ListItemCreationInformation { UnderlyingObjectType = FileSystemObjectType.Folder, LeafName = folderName }; ListItem item = list.AddItem(itemCreateInfo); item["Title"] = folderName; item.Update(); context.ExecuteQuery(); existingFolders = context.LoadQuery <Folder>( folders.Where(folder => folder.ServerRelativeUrl == folderUrl) ); context.ExecuteQuery(); return(existingFolders.First()); }
public async Task Init() { var folderList = await App._instance.IO.GetLocalDataAsync <List <FolderItem> >(StaticString.FolderListFileName); var historyList = await App._instance.IO.GetLocalDataAsync <List <HistoryItem> >(StaticString.HistoryListFileName); FolderCollection.Clear(); DisplayHistoryCollection.Clear(); if (!folderList.IsNullOrEmpty()) { folderList.ForEach(p => FolderCollection.Add(p)); } else { var folderItem = new FolderItem(App._instance.App.GetLocalizationTextFromResource(LanguageName.Default), FeatherSymbol.Activity); FolderCollection.Add(folderItem); await SaveFolderList(); } string lastSelectedFolderId = App._instance.App.GetLocalSetting(Settings.LastSelectFolderId, ""); if (!FolderCollection.Any(p => p.Id == lastSelectedFolderId)) { lastSelectedFolderId = FolderCollection.First().Id; } CurrentSelectedFolder = FolderCollection.Where(p => p.Id == lastSelectedFolderId).First(); if (!historyList.IsNullOrEmpty()) { AllHistoryList = historyList; historyList.Where(p => p.FolderId == lastSelectedFolderId).ToList().ForEach(p => DisplayHistoryCollection.Add(p)); HistoryChanged?.Invoke(this, EventArgs.Empty); } }