public DigitalstromConnectionProvider(UriPriorityList uris, IDigitalstromAuth authData, X509Certificate2?cert = null, Func <X509Certificate2, bool>?certCallback = null, HttpMessageHandler?handler = null)
        {
            Uris              = uris;
            AuthData          = authData;
            ServerCertificate = cert;
            ServerCertificateValidationCallback = certCallback;

            if (handler != null)
            {
                Handler = handler;
            }
        }
 /// <summary>
 /// Connects to the Digitalstrom DSS REST webservice at one of the given uris with
 /// the given app and user credentials given via the authentication data object. If
 /// a valid application token is given in the auth data, it is used directly.
 /// It is first tried to connect to the local uri - if this fails, i.e. the client
 /// is outside the local LAN, the internet base uri is used subsequently.
 /// </summary>
 /// <param name="localBaseUri">The uri of the Digitalstrom DSS in the local LAN</param>
 /// <param name="internetBaseUri">The internet exposed uri of the Digitalstrom DSS</param>
 /// <param name="authData">The authentication information needed to use for
 /// the webservice or to perform a new or renewed authentication</param>
 public DigitalstromDssClient(Uri localBaseUri, Uri internetBaseUri, IDigitalstromAuth authData)
     : base(new DigitalstromConnectionProvider(new List <Uri>() { localBaseUri, internetBaseUri }, authData))
 {
 }
 /// <summary>
 /// Connects to the Digitalstrom DSS REST webservice at the given uri with
 /// the given app and user credentials given via the authentication data object. If
 /// a valid application token is given in the auth data, it is used directly.
 /// </summary>
 /// <param name="uri">The uri of the Digitalstrom DSS</param>
 /// <param name="authData">The authentication information needed to use for
 /// the webservice or to perform a new or renewed authentication</param>
 public DigitalstromDssClient(Uri uri, IDigitalstromAuth authData)
     : base(new DigitalstromConnectionProvider(new List <Uri>() { uri }, authData))
 {
 }
 /// <summary>
 /// Connects to the Digitalstrom DSS REST webservice at the given uri with the given
 /// app and user credentials given via the IDigitalstromConnectionProvider object. If
 /// a valid application token is given in the auth data, it is used directly.
 /// This abstract base class handles the authentication flow including fetching and
 /// activating the application token, obtaining a session token as well as deserializing
 /// responses and unpacking the wiremessage.
 /// </summary>
 /// <param name="connectionProvider">All necessary connection infos like uris and
 /// authentication data needed to use for the webservice or to perform a new or
 /// renewed authentication</param>
 public DigitalstromAuthenticatingClientBase(IDigitalstromConnectionProvider connectionProvider)
     : base(connectionProvider)
 {
     _authData = connectionProvider.AuthData;
 }
 public DigitalstromConnectionProvider(Uri uri, IDigitalstromAuth authData, X509Certificate2?cert = null, HttpMessageHandler?handler = null)
     : this(new UriPriorityList(new List <Uri>() { uri }), authData, cert, null, handler)
 {
 }