private void InitItem(IFileSystemInfo fileInfo, IWorkspaceItem parent, WebWorkspaceItemHandler handler) { if (fileInfo.Name.StartsWith(".")) { if (fileInfo.Attributes.HasFlag(FileAttributes.Directory)) { excludedDirs.Add(fileInfo.FullName + "\\"); } return; } var item = new WorkspaceItem(fileInfo, this, parent); if (fileInfo is IDirectoryInfo dirInfo) { item.Type = WorkspaceItemType.Directory; foreach (var info in dirInfo.EnumerateFileSystemInfos()) { InitItem(info, item, handler); } } else if (item.Type == WorkspaceItemType.Bibliography) { Bibliography.Parse(item); } parent.Children.Add(item); }
private Task DownloadWorkspace(WebWorkspaceItemHandler handler) { return(Task.CompletedTask); //var req = await WebUtility.GetRequest(WebUtility.BuildWorkspaceUrl(), MultipartFormParameter.FromWebWorkspace(this, handler.User)); //var json = await req.Content.ReadAsStringAsync(); //var obj = JObject.Parse(json); //var items = obj.SelectToken("items"); //foreach (var item in items) //{ // var path = item.SelectToken("path").Value<string>(); // var dateString = item.SelectToken("date").Value<string>(); // var date = DateTime.Parse(dateString, null, DateTimeStyles.RoundtripKind); // var filePath = Path.Combine(Settings.Path, path); // var lastWrite = DateTime.MinValue; // if (FileSystem.File.Exists(filePath)) // { // lastWrite = FileSystem.File.GetLastWriteTimeUtc(filePath); // } // if (date > lastWrite) // { // var itemReq = await WebUtility.GetRequest(WebUtility.BuildWorkspaceItemUrl(), // MultipartFormParameter.FromWebWorkspace(this, handler.User).Concat(MultipartFormParameter.CreateField("name", path))); // var parent = Path.GetDirectoryName(filePath); // Directory.CreateDirectory(parent); // using (var fs = FileSystem.File.Open(filePath, FileMode.Create)) // { // await itemReq.Content.CopyToAsync(fs); // } // } //} }