Skip to content

DracoonSDK is a .Net library for Dracoon.com file cloud service.

Notifications You must be signed in to change notification settings

jamesheck2019/DracoonSDK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 

Repository files navigation

DracoonSDK

Download:https://github.com/loudKode/DracoonSDK/releases
NuGet: NuGet

Features

  • Assemblies for .NET 4.5.2 and .NET Standard 2.0 and .NET Core 2.1
  • Just one external reference (Newtonsoft.Json)
  • Easy installation using NuGet
  • Upload/Download tracking support
  • Proxy Support
  • Upload/Download cancellation support

List of functions:

  • GetParents
  • TestServerConnection
  • TestTokenValidation
  • LoggedIn
  • CreateOAuthClient
  • GetOAuthClient
  • Search
  • SearchRoom
  • FilterByExtensions
  • FilterByClassifications
  • FilterBySize
  • SearchByPath
  • UserInfo
  • AcceptEULA
  • RevokeToken
  • GetFileDownloadUrl
  • FileMetadata
  • FolderMetadata
  • RoomMetadata
  • GetRoomID
  • GetFilesDownloadUrlAsZip
  • CreateNewFolder
  • ListRooms
  • ListRoot
  • DeleteFile
  • DeleteFolder
  • DeleteRoom
  • DeleteFileFolder
  • DeleteMultipleFiles
  • DeleteMultipleFolders
  • DeleteMultipleFilesFolders
  • DeleteMultipleRooms
  • RenameFolder
  • RenameFile
  • ChangeFileClassification
  • ChangeFolderClassification
  • CreateRoom
  • EditRoomNameOrQuota
  • AddUserToRoom
  • DeleteUserFromRoom
  • DeleteMultipleUsersFromRoom
  • DownloadFile
  • DownloadFileAsStream
  • DownloadMultipleFilesAsZip
  • GetUploadLink
  • UploadLocalFile
  • GetHomeRoomSettings
  • SetHomeRoomSettings
  • CopyFile
  • CopyAndRenameFile
  • CopyMultipleFiles
  • CopyFolder
  • CopyAndRenameFolder
  • CopyMultipleFolders
  • CopyFileFolder
  • CopyAndRenameFileFolder
  • CopyMultipleFilesFolders
  • MoveFile
  • MoveAndRenameFile
  • MoveMultipleFiles
  • MoveFolder
  • MoveAndRenameFolder
  • MoveMultipleFolders
  • MoveFileFolder
  • MoveAndRenameFileFolder
  • MoveMultipleFilesFolders
  • ListTrashedFilesFolders
  • EmptyRecycleBin
  • Bookmark
  • UnBookmark
  • ListBookmarks
  • ListShares
  • ShareFileFolder
  • UnShareFileFolder
  • ShareInfo

Code simple:

Async Sub GetToken()
        Dim tkn = Await DracoonSDK.GetToken.GetToken("user", "pass")
        DataGridView1.Rows.Add(tkn.token)
    End Sub
    Sub SetClient()
        Dim MyClient As DracoonSDK.IClient = New DracoonSDK.DClient("token")
    End Sub
    Sub SetClientWithOptions()
        Dim Optians As New DracoonSDK.ConnectionSettings With {.CloseConnection = True, .TimeOut = TimeSpan.FromMinutes(30), .Proxy = New DracoonSDK.ProxyConfig With {.ProxyIP = "172.0.0.0", .ProxyPort = 80, .ProxyUsername = "myname", .ProxyPassword = "myPass", .SetProxy = True}}
        Dim MyClient As DracoonSDK.IClient = New DracoonSDK.DClient("access token", Optians)
    End Sub
    Async Sub ListMyRooms()
        Dim result = Await MyClient.Data.Room.List(10, 0, SortEnum.name, OrderEnum.asc)
        For Each vid In result.RoomsList
            DataGridView1.Rows.Add(vid.name, vid.id, vid.size, vid.permissions.create)
        Next
    End Sub
    Async Sub ListMyFilesAndFolders()
        Dim fltr As New DracoonSDK.DataClient.List_root_Filtering
        fltr.type.FilesFolders = FilesFoldersEnum.both
        Dim result = Await MyClient.Data.List(fltr, "room or folder id", 50, 0, SortEnum.name, OrderEnum.asc)
        For Each vid In result.itemsList
            DataGridView1.Rows.Add(vid.name, vid.id, vid.size, vid.permissions.create, vid.parentId)
        Next
    End Sub
    Async Sub DeleteFileOrFolder()
        Dim result = Await MyClient.Data.Delete("file or folder id")
    End Sub
    Async Sub MoveFileOrFolder()
        Dim result = Await MyClient.Data.Move("file id", "folder id", Nothing, ResolutionStrategyEnum.autorename)
    End Sub
    Async Sub CreateNewFolder()
        Dim result = Await MyClient.Data.Folder.Create("parent folder id", "new folder name")
    End Sub
    Async Sub GetRoomMetadata()
        Dim result = Await MyClient.Data.Room.Metadata("room id")
    End Sub
    Async Sub GetFilesDownloadUrlAsZip()
        Dim result = Await MyClient.Share.GetFilesDownloadUrlAsZip(New List(Of Integer) From {"file id", "file id"})
        DataGridView1.Rows.Add(result.downloadUrl, result.token)
    End Sub
    Async Sub CreateNewRoom()
        Dim result = Await MyClient.Data.Room.Create("room id", ClassificationEnum.Public, "my user id")
    End Sub
    Async Sub SearchAFile()
        Dim result = Await MyClient.Search.SearchRoom("room id", "ureWiz.png", FilesFoldersEnum.file, -1, 20, 0, SortEnum.name, OrderEnum.asc)
        For Each onz In result.itemsList
            DataGridView1.Rows.Add(onz.name, onz.File_Folder.ToString, onz.size)
        Next
    End Sub
    Async Sub FilterByExtensions()
        Dim RSLT = Await MyClient.Search.FilterByExtensions("file id", "png", FormulaEnum.eq, -1, 20, 0, SortEnum.name, OrderEnum.asc)
        For Each onz In RSLT.itemsList
            DataGridView1.Rows.Add(onz.name, onz.File_Folder.ToString, ISisFunctions.Bytes_To_KbMbGb.SetBytes(onz.size))
        Next
    End Sub
    Private Async Sub Button38_Click(sender As Object, e As EventArgs) Handles Button38.Click
        Dim fltr As New DracoonSDK.ShareClient.List_Shares_Filtering
        fltr.name.NameKeyword = "my"
        Dim RSLT = Await MyClient.Share.List(fltr, 20, 0, SortEnum.name, OrderEnum.asc)
        For Each onz In RSLT.items
            DataGridView1.Rows.Add(onz.ShareID, onz.ID, onz.name, onz.nodePath, onz.isEncrypted, onz.isPasswordProtected, onz.accessKey, onz.cntDownloads, onz.smsRecipients, onz.ShareUrl)
        Next
    End Sub
    Async Sub Upload_Local_WithProgressTracking()
        Dim UploadCancellationToken As New Threading.CancellationTokenSource()
        Dim _ReportCls As New Progress(Of DracoonSDK.ReportStatus)(Sub(ReportClass As DracoonSDK.ReportStatus)
                                                                       Label1.Text = String.Format("{0}/{1}", (ReportClass.BytesTransferred), (ReportClass.TotalBytes))
                                                                       ProgressBar1.Value = CInt(ReportClass.ProgressPercentage)
                                                                       Label2.Text = CStr(ReportClass.TextStatus)
                                                                   End Sub)
        Await MyClient.Data.File.Upload("J:\DB\myvideo.mp4", UploadTypes.FilePath, "myvideo.mp4", "folder id", ClassificationEnum.Internal, _ReportCls, UploadCancellationToken.Token)
    End Sub
    Async Sub Download_File_WithProgressTracking()
        Dim DownloadCancellationToken As New Threading.CancellationTokenSource()
        Dim _ReportCls As New Progress(Of DracoonSDK.ReportStatus)(Sub(ReportClass As DracoonSDK.ReportStatus)
                                                                       Label1.Text = String.Format("{0}/{1}", (ReportClass.BytesTransferred), (ReportClass.TotalBytes))
                                                                       ProgressBar1.Value = CInt(ReportClass.ProgressPercentage)
                                                                       Label2.Text = CStr(ReportClass.TextStatus)
                                                                   End Sub)
        Await MyClient.Data.File.Download("file id", "J:\DB\", "myvideo.mp4", _ReportCls, DownloadCancellationToken.Token)
    End Sub
    Async Sub CreateNewDevApp()
        Dim RSLT = Await MyClient.Account.CreateOAuthClient("NewTestDraClient", "https://MyDomain.org/Dracoon/app.html")
        DataGridView1.Rows.Add(RSLT.clientName, RSLT.clientId, RSLT.clientSecret, RSLT.grantTypes, RSLT.accessTokenValidity, RSLT.isEnabled, RSLT.isStandard, RSLT.redirectUris, RSLT.refreshTokenValidity)
    End Sub
    Async Sub AppInfo()
        Dim RSLT = Await MyClient.Account.GetOAuthClient()
        DataGridView1.Rows.Add(RSLT.clientName)
    End Sub