public void GetVersionTest()
        {
            CreateStubForLogin();
            CreateStubForVersion();

            MetadefenderCoreClient metadefenderCoreClient = new MetadefenderCoreClient(GetMockApiUrl(), "admin", "admin");

            ApiVersion apiVersion = metadefenderCoreClient.GetVersion();

            Assert.AreEqual("4.3.0.256", apiVersion.version);
            Assert.AreEqual("MSCL", apiVersion.product_id);

            HttpServer.AssertWasCalled(x =>
            {
                var ret = x.CustomVerb("GET", "/version");
                ret.WithHeader("apikey", new EqualConstraint(TEST_SESSION_ID));
                return(ret);
            }
                                       );
        }
        private static void ShowApiInfo(string apiUrl, string apiUser, string apiUserPass)
        {
            MetadefenderCoreClient metadefenderCoreClient;

            try
            {
                metadefenderCoreClient = new MetadefenderCoreClient(apiUrl, apiUser, apiUserPass);

                Console.WriteLine("Metadefender client created. Session id is: " + metadefenderCoreClient.GetSessionId());
            }
            catch (MetadefenderClientException e)
            {
                Console.WriteLine("Cannot login to this API. Error message: " + e.GetDetailedMessage());
                return;
            }

            try
            {
                License license = metadefenderCoreClient.GetCurrentLicenseInformation();
                Console.WriteLine("Licensed to: " + license.licensed_to);
            }
            catch (MetadefenderClientException e)
            {
                Console.WriteLine("Cannot get license details: " + e.GetDetailedMessage());
            }

            try
            {
                List <EngineVersion> result = metadefenderCoreClient.GetEngineVersions();
                Console.WriteLine("Fetched engine/database versions: " + result.Count);
            }
            catch (MetadefenderClientException e)
            {
                Console.WriteLine("Cannot get engine/database   versions: " + e.GetDetailedMessage());
            }

            try
            {
                ApiVersion apiVersion = metadefenderCoreClient.GetVersion();
                Console.WriteLine("Api endpoint apiVersion: " + apiVersion.version);
            }
            catch (MetadefenderClientException e)
            {
                Console.WriteLine("Cannot get api endpoint version: " + e.GetDetailedMessage());
            }

            try
            {
                List <ScanRule> scanRules = metadefenderCoreClient.GetAvailableScanRules();
                Console.WriteLine("Available scan rules: " + scanRules.Count);
            }
            catch (MetadefenderClientException e)
            {
                Console.WriteLine("Cannot get available scan rules: " + e.GetDetailedMessage());
            }

            try
            {
                metadefenderCoreClient.Logout();
                Console.WriteLine("Client successfully logged out.");
            }
            catch (MetadefenderClientException e)
            {
                Console.WriteLine("Cannot log out: " + e.GetDetailedMessage());
            }
        }