CompuMaster.CenterDevice.Rest 2026.1.2.100

dotnet add package CompuMaster.CenterDevice.Rest --version 2026.1.2.100
                    
NuGet\Install-Package CompuMaster.CenterDevice.Rest -Version 2026.1.2.100
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CompuMaster.CenterDevice.Rest" Version="2026.1.2.100" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CompuMaster.CenterDevice.Rest" Version="2026.1.2.100" />
                    
Directory.Packages.props
<PackageReference Include="CompuMaster.CenterDevice.Rest" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CompuMaster.CenterDevice.Rest --version 2026.1.2.100
                    
#r "nuget: CompuMaster.CenterDevice.Rest, 2026.1.2.100"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package CompuMaster.CenterDevice.Rest@2026.1.2.100
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=CompuMaster.CenterDevice.Rest&version=2026.1.2.100
                    
Install as a Cake Addin
#tool nuget:?package=CompuMaster.CenterDevice.Rest&version=2026.1.2.100
                    
Install as a Cake Tool

CompuMaster.CenterDevice.IO - the C# library for the CenterDevice file system

Frameworks supported

  • .NET 5.0 or later
  • .NET Framework 4.8 or later
  • .NET Standard 2.0 or later

Clients supported

  • Scopevisio Teamwork (OpenScope)
  • MISSING: CenterDevice
    • the library already works for some 3rd party labels which indirectly involve the CenterDevice API.
    • as per today, the library DOES NOT work as a pure CenterDevice client since the CenterDevice API lacks an adequate authentification process (API allows regular login only as web login)
  • CompuMaster.Dms
    • an abstract DMS provider for multiple cloud systems aka DMS systems (WebDAV, OwnCloud, NextCloud, Scopevisio Teamwork, CenterDevice, or custom providers
    • and additionally a Windows.Forms UI for accessing and managing files, folders and shares

Console sample application for Scopevisio Teamwork

For accessing Scopevisio Teamwork, you can use above sample application, but use another IOClient for Teamwork:

string username = InputLine("username");
string customerno = InputLine("customer no.");
string password = InputLine("password");

//Authorize initially with user credentials -> recieved access token will be saved for following requests
OpenScopeApiClient OpenScopeClient = new OpenScopeApiClient();
OpenScopeClient.AuthorizeWithUserCredentials(username, customerno, password);

//Create teamwork rest client
//CompuMaster.Scopevisio.CenterDeviceApi.TeamworkRestClient TeamworkRestClient = new CompuMaster.Scopevisio.CenterDeviceApi.TeamworkRestClient(OpenScopeClient);

//Create IO client for CenterDevice or Scopevisio Teamwork 
CompuMaster.Scopevisio.CenterDeviceApi.TeamworkIOClient IOClient = new CompuMaster.Scopevisio.CenterDeviceApi.TeamworkIOClient(OpenScopeClient);

Output of sample application (browse directory parts of above code only)

## Initial directory listing - flat
/

## Initial directory listing - recursive - without display of files
/
    [Dirs:?]/

## Full directory listing - after GetDirectories(0)
/
    Test/
        [Dirs:?]/
        [Files:?]
    Neue Sammlung/
        [Dirs:?]/
        [Files:?]
    [Files:?]

## Full directory listing - after GetDirectories(1)
/
    Test/
        BWA/
            [Dirs:?]/
            [Files:?]
        DirLevel 01/
            [Dirs:?]/
            [Files:?]
        Summen- und Saldenliste/
            [Dirs:?]/
            [Files:?]
        test.txt.txt
    Neue Sammlung/
        SubDir/
            [Dirs:?]/
            [Files:?]
        test\/|?*:;,."_'@2.txt

## Full directory listing - after GetDirectories(2)
/
    Test/
        BWA/
            2019/
                [Dirs:?]/
                [Files:?]
            2020/
                [Dirs:?]/
                [Files:?]
            bwa.dir
            test.txt.txt
        DirLevel 01/
            DirLevel 02/
                [Dirs:?]/
                [Files:?]
        Summen- und Saldenliste/
            2019/
                [Dirs:?]/
                [Files:?]
            2020/
                [Dirs:?]/
                [Files:?]
            test.txt.txt
        test.txt.txt
    Neue Sammlung/
        SubDir/
            test.txt
        test\/|?*:;,."_'@2.txt

## Full directory listing - after GetDirectories(10)
/
    Test/
        BWA/
            2019/
                bwa.2019.dir.txt
                test.txt.txt
            2020/
                test.txt.txt
            bwa.dir
            test.txt.txt
        DirLevel 01/
            DirLevel 02/
                DirLevel 03/
                    DirLevel 04/
                        DirLevel 05/
                            DirLevel 06/
                                test\/|?*:;,."_'@2.txt
                            test.txt
        Summen- und Saldenliste/
            2019/
                test.txt.txt
            2020/
                test.txt.txt
            test.txt.txt
        test.txt.txt
    Neue Sammlung/
        SubDir/
            test.txt
        test\/|?*:;,."_'@2.txt

## Open directory path - / [Start: /]
FullName=/

## Open directory path - "" [Start: /]
FullName=/

## Open directory path - . [Start: /]
FullName=/

## Open directory path - Test/Summen- und Saldenliste\2020/ [Start: /]
FullName=/Test/Summen- und Saldenliste/2020

## Open file path - Test/Summen- und Saldenliste\2020/test.txt.txt [Start: /]
FullName=/Test/Summen- und Saldenliste/2020/test.txt.txt

## Open file path - test.txt.txt [Start: /Test/Summen- und Saldenliste/2020]
FullName=/Test/Summen- und Saldenliste/2020/test.txt.txt

## Open directory path - / [Start: /Test/Summen- und Saldenliste/2020]
FullName=/

## Open directory path - "" [Start: /Test/Summen- und Saldenliste/2020]
FullName=/Test/Summen- und Saldenliste/2020

## Open directory path - . [Start: /Test/Summen- und Saldenliste/2020]
FullName=/Test/Summen- und Saldenliste/2020

## Open directory path - .. [Start: /Test/Summen- und Saldenliste/2020]
FullName=/Test/Summen- und Saldenliste

## Open file path - test.txt.txt [Start: /Test/Summen- und Saldenliste/2020]
FullName=/Test/Summen- und Saldenliste/2020/test.txt.txt

## Open file path - ../test.txt.txt [Start: /Test/Summen- und Saldenliste/2020]
FullName=/Test/Summen- und Saldenliste/test.txt.txt

## Open file path - /Test/test.txt.txt [Start: /Test/Summen- und Saldenliste/2020]
FullName=/Test/test.txt.txt

## Open file path - /test.txt.txt [Start: /Test/Summen- und Saldenliste/2020]
Exception: System.IO.FileNotFoundException: File not found
Dateiname: "/test.txt.txt"
   bei CenterDevice.IO.DirectoryInfo.GetFile(String fileName) in D:\GitHub-OpenSource-Externals+Backups\bierdeckel-automation\CenterDevice\CenterDevice.Rest\IO\DirectoryInfo.cs:Zeile 279.
   bei CenterDevice.IO.DirectoryInfo.OpenFilePath(String[] directoryNames, String fileName) in D:\GitHub-OpenSource-Externals+Backups\bierdeckel-automation\CenterDevice\CenterDevice.Rest\IO\DirectoryInfo.cs:Zeile 223.
   bei CenterDevice.IO.DirectoryInfo.OpenFilePath(String[] directoryNamesWithFileName) in D:\GitHub-OpenSource-Externals+Backups\bierdeckel-automation\CenterDevice\CenterDevice.Rest\IO\DirectoryInfo.cs:Zeile 209.
   bei CenterDevice.IO.DirectoryInfo.OpenFilePath(String path) in D:\GitHub-OpenSource-Externals+Backups\bierdeckel-automation\CenterDevice\CenterDevice.Rest\IO\DirectoryInfo.cs:Zeile 194.
   bei CenterDevice.SampleApp.Program.Main() in D:\GitHub-OpenSource-Externals+Backups\bierdeckel-automation\CenterDevice\CenterDevice.SampleApp\Program.cs:Zeile 139.

Console sample application for CenterDevice - NOT WORKING AS PURE CONSOLE APP - REQUIRES WEB LOGIN

using CompuMaster.Scopevisio.OpenApi;
using CompuMaster.Scopevisio.OpenApi.Api;
using CompuMaster.Scopevisio.OpenApi.Client;
using CompuMaster.Scopevisio.OpenApi.Model;
using System;

namespace ConsoleSampleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            string username = "TODO"
            string password = "TODO"

            try
            {
                //Create IO client for CenterDevice
                CenterDevice.IO.CenterDeviceIOClient IOClient = new CenterDevice.IO.CenterDeviceIOClient(new CenterDevice.Rest.Clients.CenterDeviceClient(oAuthInfoProvider, configuration, errorHandler), userID);  //TODO: provide arguments as usual for CenterDevice REST client

                //Show available directory structure
                if (true)
                {
                    System.Console.WriteLine("\r\n## Initial directory listing - flat");
                    System.Console.WriteLine(IOClient.RootDirectory.ToStringListing(false, true));

                    System.Console.WriteLine("\r\n## Initial directory listing - recursive - without display of files");
                    System.Console.WriteLine(IOClient.RootDirectory.ToStringListing(true, false));

                    System.Console.WriteLine("\r\n## Full directory listing - after GetDirectories(0)");
                    IOClient.RootDirectory.GetDirectories(0, false);
                    System.Console.WriteLine(IOClient.RootDirectory.ToStringListing(true, true));

                    System.Console.WriteLine("\r\n## Full directory listing - after GetDirectories(1)");
                    IOClient.RootDirectory.GetDirectories(1, true);
                    System.Console.WriteLine(IOClient.RootDirectory.ToStringListing(true, true));

                    System.Console.WriteLine("\r\n## Full directory listing - after GetDirectories(2)");
                    IOClient.RootDirectory.GetDirectories(2, true);
                    System.Console.WriteLine(IOClient.RootDirectory.ToStringListing(true, true));

                    System.Console.WriteLine("\r\n## Full directory listing - after GetDirectories(10)");
                    IOClient.RootDirectory.GetDirectories(10, true);
                    System.Console.WriteLine(IOClient.RootDirectory.ToStringListing(true, true));
                }

                //Navigate and open specified paths
                if (true)
                {
                    IO.DirectoryInfo BaseTestPath;
                    string OpenTestPath;
                    IO.DirectoryInfo OpenedTestDir;
                    IO.FileInfo OpenedTestFile;

                    BaseTestPath = IOClient.RootDirectory;
                    OpenTestPath = @"/";
                    System.Console.WriteLine("\r\n## Open directory path - " + OpenTestPath + " [Start: " + BaseTestPath + "]");
                    OpenedTestDir = BaseTestPath.OpenDirectoryPath(OpenTestPath);
                    System.Console.WriteLine("FullName=" + OpenedTestDir.FullName);

                    OpenTestPath = @"";
                    System.Console.WriteLine("\r\n## Open directory path - \"" + OpenTestPath + "\"" + " [Start: " + BaseTestPath + "]");
                    OpenedTestDir = BaseTestPath.OpenDirectoryPath(OpenTestPath);
                    System.Console.WriteLine("FullName=" + OpenedTestDir.FullName);

                    OpenTestPath = @".";
                    System.Console.WriteLine("\r\n## Open directory path - " + OpenTestPath + " [Start: " + BaseTestPath + "]");
                    OpenedTestDir = BaseTestPath.OpenDirectoryPath(OpenTestPath);
                    System.Console.WriteLine("FullName=" + OpenedTestDir.FullName);

                    OpenTestPath = @"Test/Summen- und Saldenliste\2020/";
                    System.Console.WriteLine("\r\n## Open directory path - " + OpenTestPath + " [Start: " + BaseTestPath + "]");
                    OpenedTestDir = BaseTestPath.OpenDirectoryPath(OpenTestPath);
                    System.Console.WriteLine("FullName=" + OpenedTestDir.FullName);

                    OpenTestPath = @"Test/Summen- und Saldenliste\2020/test.txt.txt";
                    System.Console.WriteLine("\r\n## Open file path - " + OpenTestPath + " [Start: " + BaseTestPath + "]");
                    OpenedTestFile = BaseTestPath.OpenFilePath(OpenTestPath);
                    System.Console.WriteLine("FullName=" + OpenedTestFile.FullName);

                    BaseTestPath = OpenedTestDir;
                    OpenTestPath = @"test.txt.txt";
                    System.Console.WriteLine("\r\n## Open file path - " + OpenTestPath + " [Start: " + BaseTestPath + "]");
                    OpenedTestFile = BaseTestPath.OpenFilePath(OpenTestPath);
                    System.Console.WriteLine("FullName=" + OpenedTestFile.FullName);

                    OpenTestPath = @"/";
                    System.Console.WriteLine("\r\n## Open directory path - " + OpenTestPath + " [Start: " + BaseTestPath + "]");
                    OpenedTestDir = BaseTestPath.OpenDirectoryPath(OpenTestPath);
                    System.Console.WriteLine("FullName=" + OpenedTestDir.FullName);

                    OpenTestPath = @"";
                    System.Console.WriteLine("\r\n## Open directory path - \"" + OpenTestPath + "\"" + " [Start: " + BaseTestPath + "]");
                    OpenedTestDir = BaseTestPath.OpenDirectoryPath(OpenTestPath);
                    System.Console.WriteLine("FullName=" + OpenedTestDir.FullName);

                    OpenTestPath = @".";
                    System.Console.WriteLine("\r\n## Open directory path - " + OpenTestPath + " [Start: " + BaseTestPath + "]");
                    OpenedTestDir = BaseTestPath.OpenDirectoryPath(OpenTestPath);
                    System.Console.WriteLine("FullName=" + OpenedTestDir.FullName);

                    OpenTestPath = @"..";
                    System.Console.WriteLine("\r\n## Open directory path - " + OpenTestPath + " [Start: " + BaseTestPath + "]");
                    OpenedTestDir = BaseTestPath.OpenDirectoryPath(OpenTestPath);
                    System.Console.WriteLine("FullName=" + OpenedTestDir.FullName);

                    OpenTestPath = @"test.txt.txt";
                    System.Console.WriteLine("\r\n## Open file path - " + OpenTestPath + " [Start: " + BaseTestPath + "]");
                    OpenedTestFile = BaseTestPath.OpenFilePath(OpenTestPath);
                    System.Console.WriteLine("FullName=" + OpenedTestFile.FullName);

                    OpenTestPath = @"../test.txt.txt";
                    System.Console.WriteLine("\r\n## Open file path - " + OpenTestPath + " [Start: " + BaseTestPath + "]");
                    OpenedTestFile = BaseTestPath.OpenFilePath(OpenTestPath);
                    System.Console.WriteLine("FullName=" + OpenedTestFile.FullName);

                    OpenTestPath = @"/Test/test.txt.txt";
                    System.Console.WriteLine("\r\n## Open file path - " + OpenTestPath + " [Start: " + BaseTestPath + "]");
                    OpenedTestFile = BaseTestPath.OpenFilePath(OpenTestPath);
                    System.Console.WriteLine("FullName=" + OpenedTestFile.FullName);

                    OpenTestPath = @"/test.txt.txt";
                    System.Console.WriteLine("\r\n## Open file path - " + OpenTestPath + " [Start: " + BaseTestPath + "]");
                    OpenedTestFile = BaseTestPath.OpenFilePath(OpenTestPath);
                    System.Console.WriteLine("FullName=" + OpenedTestFile.FullName);
                }

                //Upload and download
                if (true)
                {
                    IO.DirectoryInfo BaseTestPath;
                    string OpenTestPath;
                    IO.DirectoryInfo OpenedTestDir;
                    IO.FileInfo OpenedTestFile;

                    BaseTestPath = IOClient.RootDirectory;
                    OpenTestPath = @"/Test";

                    //Upload 
                    OpenedTestDir.Upload(@"c:\temp\my-file.txt", "my-uploaded-file.txt", IO.DirectoryInfo.UploadMode.CreateNewVersionOrNewFile);

                    //Download
                    OpenedTestFile = OpenedTestDir.OpenFilePath("my-uploaded-file.txt");
                    OpenedTestFile.Download(@"c:\temp\my-downloaded-file.txt");

                    //Delete the temporary file from server
                    OpenedTestFile.Delete();
                }
            }
#pragma warning disable CA1031 // Do not catch general exception types
            catch (Exception e)
            {
                System.Console.WriteLine("Exception: " + e.ToString());
            }
#pragma warning restore CA1031 // Do not catch general exception types
        }
    }
}
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 is compatible.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on CompuMaster.CenterDevice.Rest:

Package Downloads
CompuMaster.Dms.Providers

Package Description

CompuMaster.Scopevisio.Teamwork

Client access library for the Teamwork part of OpenScope API https://www.openscope.de/ (REST web API interface provided by Scopevisio AG, https://www.scopevisio.com/), library generated from Swagger/OpenAPI doc at https://appload.scopevisio.com/rest/swagger.json

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2026.1.2.100 140 1/2/2026
2024.11.5.100 762 11/5/2024
2022.5.23.102 2,167 5/23/2022
2022.5.12.100 591 5/12/2022
2022.4.25.100 1,217 4/25/2022
2022.4.20.102 934 4/20/2022
2021.7.26.100 1,377 7/26/2021
2021.7.20.100 1,116 7/20/2021
2021.4.28.100 493 4/28/2021
2020.9.3.100 2,149 9/3/2020