Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
            //        }
            //    }
            //}
        }