public void LogoutTest()
        {
            CreateStubForLogin();

            CreateStub("/logout", "POST", 200, GetJsonFromFile("MetadefenderCoreClient.test.resources.apiResponses.logout.logout_success.json"));

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

            Assert.NotNull(metadefenderCoreClient.GetSessionId());

            metadefenderCoreClient.Logout();

            Assert.Null(metadefenderCoreClient.GetSessionId());

            HttpServer.AssertWasCalled(x =>
            {
                var ret = x.CustomVerb("POST", "/logout");
                ret.WithHeader("apikey", new EqualConstraint(TEST_SESSION_ID));
                return(ret);
            }
                                       );
        }
        public void LoginTest()
        {
            CreateStubForLogin();

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

            Assert.AreEqual(TEST_SESSION_ID, metadefenderCoreClient.GetSessionId());

            HttpServer.AssertWasCalled(x => {
                var ret = x.CustomVerb("POST", "/login");
                ret.WithBody("{\"user\":\"admin\",\"password\":\"admin\"}");
                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());
            }
        }