예제 #1
0
 public FolderData(FolderResponse response, string userId)
 {
     UserId       = userId;
     Id           = response.Id;
     Name         = response.Name;
     RevisionDate = response.RevisionDate;
 }
예제 #2
0
 public FolderData(FolderResponse folder, string userId)
 {
     Id               = folder.Id;
     UserId           = userId;
     Name             = folder.Name;
     RevisionDateTime = folder.RevisionDate;
 }
예제 #3
0
        private void Init(string projectId, FolderID folderId)
        {
            IRestResponse  response       = CallApi(string.Format("data/v1/projects/{0}/folders/{1}", projectId, folderId.ID), Method.GET).Result;
            FolderResponse folderJsonData = JsonConvert.DeserializeObject <JsonapiResponse <FolderResponse> >(response.Content).data;

            this.Json = folderJsonData;
        }
예제 #4
0
        public async Task <ActionResult> PostFolder([FromBody] PostFolderRequest request)
        {
            var newFolder = new Folder
            {
                Name = request.Name
            };

            newFolder.Registers.Add(new Register
            {
                Order         = 0,
                DocumentCount = 0,
                IsActive      = true
            });

            await _documentlibContext.AddAsync(newFolder);

            await _documentlibContext.SaveChangesAsync();

            var folderResponse = new FolderResponse
            {
                Id            = newFolder.Id.ToString(),
                Name          = newFolder.Name,
                Registers     = newFolder.Registers.Select(reg => reg.Id.ToString()).ToArray(),
                DocumentCount = newFolder.Registers.Sum(reg => reg.DocumentCount)
            };

            return(Ok(folderResponse));
        }
예제 #5
0
        public void ShouldGetFolderAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act
            FolderResponse folder = filesApi.GetFolderAsync("applications", "calendar", ListingFlags.IncludeEverything).Result;

            // Assert
            folder.ShouldNotBe(null);
            folder.name.ShouldBe("calendar");
            folder.folder.Count.ShouldBe(2);
            folder.file.Count.ShouldBe(6);
        }
예제 #6
0
        public void ShouldGetFolderAsync()
        {
            // Arrange
            IFilesApi filesApi = CreateFilesApi();

            // Act
            FolderResponse folder = filesApi.GetFolderAsync("calendar", ListingFlags.IncludeEverything).Result;

            // Assert
            folder.ShouldNotBe(null);
            folder.Name.ShouldBe("calendar");
            folder.Folder.Count.ShouldBe(2);
            folder.File.Count.ShouldBe(6);

            Should.Throw <ArgumentNullException>(() => filesApi.GetFolderAsync(null, ListingFlags.IncludeEverything));
        }
예제 #7
0
        private FolderResponse GetFolderResponse(string path)
        {
            var previousFolder = Directory.GetParent(path);
            var response       = new FolderResponse()
            {
                Entries        = GetEntriesFromPath(path),
                PreviousFolder = previousFolder != null ? previousFolder.FullName : ""
            };

            foreach (var entry in response.Entries)
            {
                PopulateEntry(entry);
            }

            return(response);
        }
예제 #8
0
        public ActionResult GetFolder(Guid id)
        {
            var folder = _documentlibContext.Folders
                         .Include(f => f.Registers)
                         .ThenInclude(reg => reg.Documents)
                         .Single(f => f.Id == id);

            var folderResponse = new FolderResponse
            {
                Id            = folder.Id.ToString(),
                Name          = folder.Name,
                Registers     = folder.Registers.Select(reg => reg.Id.ToString()).ToArray(),
                DocumentCount = folder.Registers.Sum(reg => reg.Documents.Count)
            };

            return(Ok(folderResponse));
        }
예제 #9
0
        public async Task <ActionResult> PutFolder([FromBody] PutFolderRequest request)
        {
            var folder = await _documentlibContext.Folders.FindAsync(request.Id);

            folder.Name = request.Name;

            _documentlibContext.Update(folder);
            await _documentlibContext.SaveChangesAsync();

            var response = new FolderResponse
            {
                Id            = folder.Id.ToString(),
                Name          = folder.Name,
                Registers     = folder.Registers?.Select(reg => reg.Id.ToString()).ToArray() ?? new string[0],
                DocumentCount = folder.Registers?.Sum(reg => reg.DocumentCount) ?? 0
            };

            return(Ok(response));
        }
예제 #10
0
 public Folder(FolderResponse response)
 {
     Id   = response.Id;
     Name = response.Name != null ? new CipherString(response.Name) : null;
 }
예제 #11
0
        public async Task <List <Folder> > GetFolders(string path)
        {
            List <Folder> resFolders = new List <Folder>();

            client.Timeout = -1;
            var request = new RestRequest("/files/list_folder", Method.POST);

            request.AddHeader("Authorization", "Bearer " + Token);
            request.AddJsonBody(new
            {
                path           = path,
                recursive      = false,
                includeDeleted = false
            });
            IRestResponse response = await client.ExecuteAsync(request);

            if (response.IsSuccessful)
            {
                FolderResponse res = JsonConvert.DeserializeObject <FolderResponse>(response.Content);
                resFolders.AddRange(res.Data.Entries);
                if (res.Data.HasMore)
                {
                    var cursor = res.Data.Cursor;
                    while (true)
                    {
                        var continueClient  = new RestClient(BaseUrl + "/files/list_folder/continue");
                        var continueRequest = new RestRequest(Method.POST);
                        continueRequest.AddHeader("Authorization", "Bearer " + Token);
                        continueRequest.AddJsonBody(new
                        {
                            cursor = cursor
                        });
                        IRestResponse continueResponse = await continueClient.ExecuteAsync(continueRequest);

                        if (continueResponse.IsSuccessful)
                        {
                            FolderResponse continueRes = JsonConvert.DeserializeObject <FolderResponse>(continueResponse.Content);
                            resFolders.AddRange(continueRes.Data.Entries);
                            if (continueRes.Data.HasMore)
                            {
                                cursor = continueRes.Data.Cursor;
                            }
                            else
                            {
                                break;
                            }
                        }
                        else
                        {
                            MessageBox.Show("Get files to sync failed, err: " + continueResponse.Content);
                            break;
                        }
                    }
                }
            }
            else
            {
                MessageBox.Show("Get files to sync failed, err: " + response.Content);
            }
            return(resFolders);
        }