Ejemplo n.º 1
0
        void ConnecttoQMS()
        {
            Client = new QMSClient("BasicHttpBinding_IQMS", QMSURL);

            string key = Client.GetTimeLimitedServiceKey();
            ServiceKeyClientMessageInspector.ServiceKey = key;
        }
Ejemplo n.º 2
0
        private QMSClient CreateClient()
        {
            const int maxSize        = 26214400;
            TimeSpan  receiveTimeout = new TimeSpan(0, 10, 0);
            TimeSpan  sendTimeout    = new TimeSpan(0, 10, 0);
            TimeSpan  innerChannelOperationTimeout = new TimeSpan(0, 10, 0);

            try
            {
                EndpointAddress  endpointAddress = new EndpointAddress(_address);
                BasicHttpBinding httpBinding     = new BasicHttpBinding();
                httpBinding.MaxBufferSize          = maxSize;
                httpBinding.MaxBufferPoolSize      = maxSize * 2;
                httpBinding.MaxReceivedMessageSize = maxSize;
                httpBinding.ReceiveTimeout         = receiveTimeout;
                httpBinding.OpenTimeout            = receiveTimeout;
                httpBinding.SendTimeout            = sendTimeout;
                httpBinding.Security.Mode          = BasicHttpSecurityMode.TransportCredentialOnly;
                httpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Ntlm;

                QMSClient client = new QMSClient(httpBinding, endpointAddress);
                QMSClientServiceKeySupport.Initiate(client);
                client.InnerChannel.OperationTimeout = innerChannelOperationTimeout;
                return(client);
            }
            catch (System.Exception ex)
            {
                Log.To.Main.AddException("Failed creating Qv Client", ex);
            }

            return(null);
        }
        public static void Initiate(QMSClient qmsClient)
        {
            var serviceKeyEndpointBehavior = new ServiceKeyEndpointBehavior();

            qmsClient.Endpoint.Behaviors.Add(serviceKeyEndpointBehavior);
            serviceKeyEndpointBehavior._clientMessageInspector.ServiceKey = qmsClient.GetTimeLimitedServiceKey();
        }
Ejemplo n.º 4
0
        public Connection(string url, string domain, string username, string password)
        {
            this.client = new QMSClient("BasicHttpBinding_IQMS", url);
            WindowsClientCredential creds = client.ClientCredentials.Windows;

            creds.ClientCredential.Domain               = domain;
            creds.ClientCredential.UserName             = username;
            creds.ClientCredential.Password             = password;
            ServiceKeyClientMessageInspector.ServiceKey = client.GetTimeLimitedServiceKey();
        }
Ejemplo n.º 5
0
        public QVDistributionServer(QMSClient client)
        {
            this.client   = client;
            qds           = client.GetServices(ServiceTypes.QlikViewDistributionService).FirstOrDefault();
            documentNodes = client.GetSourceDocuments(qds.ID).ToList();
            tasks         = client.GetTasks(qds.ID).ToList();

            TaskStatusFilter         taskStatusFilter   = new TaskStatusFilter();
            List <QMSAPI.TaskStatus> clientTaskStatuses = client.GetTaskStatuses(taskStatusFilter, TaskStatusScope.All).ToList();

            foreach (QMSAPI.TaskStatus taskStatus in clientTaskStatuses)
            {
                Console.WriteLine(taskStatus.TaskID);
            }
        }
Ejemplo n.º 6
0
        private IQMS CreateQMSAPIClient(Uri uri, Form1 Principal)
        {
            QMSClient client = null;

            try
            {
                client = new QMSClient("BasicHttpBinding_IQMS", uri.AbsoluteUri);
                string key = client.GetTimeLimitedServiceKey();
                ServiceKeyClientMessageInspector.ServiceKey = key;
            }
            catch (System.Exception Ex)
            {
                Principal.setEstadoRecarga(Ex.Message);
                return(null);
            }
            return(client);
        }
Ejemplo n.º 7
0
        private static IQMS CreateQMSAPIClient(Uri uri)
        {
            QMSClient client = null;

            try
            {
                client = new QMSClient("BasicHttpBinding_IQMS", uri.AbsoluteUri);
                ServiceKeyEndpointBehavior serviceKeyEndpointBehavior = new ServiceKeyEndpointBehavior();
                client.Endpoint.Behaviors.Add(serviceKeyEndpointBehavior);
                ServiceKeyClientMessageInspector.ServiceKey = client.GetTimeLimitedServiceKey();
            }
            catch (Exception e)
            {
                commSupport.PrintMessage("Exception when creating QMs client, run help command for information about usage. Exeception: " + e.Message, true);
            }
            return(client);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// List CALs
        /// </summary>
        public static void List()
        {
            try
            {
                // Initiate backend client
                var backendClient = new QMSClient();

                // Get a time limited service key
                ServiceKeyClientMessageInspector.ServiceKey = backendClient.GetTimeLimitedServiceKey();

                // Get available QlikView Servers
                var serviceList = backendClient.GetServices(ServiceTypes.QlikViewServer);

                Console.WriteLine("UserName;LastUsed;QuarantinedUntil;Document;Server");

                // Loop through available servers
                foreach (var server in serviceList)
                {
                    // Get Named CALs
                    var config = backendClient.GetCALConfiguration(server.ID, CALConfigurationScope.NamedCALs);

                    foreach (var c in config.NamedCALs.AssignedCALs)
                    {
                        Console.WriteLine(String.Format("{0};{1};{2};{3};{4}", c.UserName, c.LastUsed.Year > 0001 ? c.LastUsed.ToString() : "", c.QuarantinedUntil.Year > 0001 ? c.QuarantinedUntil.ToString() : "", "", server.Name));
                    }

                    // Get Document CAL's
                    var userDocuments = backendClient.GetUserDocuments(server.ID);

                    foreach (var docNode in userDocuments)
                    {
                        var metaData = backendClient.GetDocumentMetaData(docNode, DocumentMetaDataScope.Licensing);

                        foreach (var c in metaData.Licensing.AssignedCALs)
                        {
                            Console.WriteLine(String.Format("{0};{1};{2};{3};{4}", c.UserName, c.LastUsed.Year > 0001 ? c.LastUsed.ToString() : "", c.QuarantinedUntil.Year > 0001 ? c.QuarantinedUntil.ToString() : "", docNode.Name, server.Name));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        /// <summary>
        /// List DMS users
        /// </summary>
        /// <param name="documents"></param>
        public static void List(ICollection <string> documents)
        {
            try
            {
                // Initiate backend client
                var backendClient = new QMSClient();

                // Get a time limited service key
                ServiceKeyClientMessageInspector.ServiceKey = backendClient.GetTimeLimitedServiceKey();

                // Get available QlikView Servers
                var serviceList = backendClient.GetServices(ServiceTypes.QlikViewServer);

                Console.WriteLine("UserName;Document;Server");

                // Loop through available servers
                foreach (var server in serviceList)
                {
                    // Get documents on each server
                    var userDocuments = backendClient.GetUserDocuments(server.ID);

                    // Loop through available documents
                    foreach (var docNode in userDocuments)
                    {
                        if (documents.Count != 0 && !documents.Contains(docNode.Name.ToLower()))
                        {
                            continue;
                        }

                        // Get authorization meta data
                        var metaData = backendClient.GetDocumentMetaData(docNode, DocumentMetaDataScope.Authorization);

                        foreach (var user in metaData.Authorization.Access)
                        {
                            Console.WriteLine(String.Format("{0};{1};{2}", user.UserName, docNode.Name, server.Name));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Ejemplo n.º 10
0
        /// <summary>
        /// List information about CALs
        /// </summary>
        public static void CalInfo()
        {
            try
            {
                // Initiate backend client
                var backendClient = new QMSClient();

                // Get a time limited service key
                ServiceKeyClientMessageInspector.ServiceKey = backendClient.GetTimeLimitedServiceKey();

                // Get available QlikView Servers
                var serviceList = backendClient.GetServices(ServiceTypes.QlikViewServer);

                Console.WriteLine("Server;NamedAssigned;NamedInLicense;NamedLeased;NamedAllowDynamic;NamedAllowLease;DocAssigned;DocInLicense;SessionAvailable;SessionInLicense;UsageAvailable;UsageInLicense");

                // Loop through available servers
                foreach (var server in serviceList)
                {
                    // Get Named CALs
                    var config = backendClient.GetCALConfiguration(server.ID, CALConfigurationScope.All);

                    Console.Write(server.Name + ";");
                    Console.Write(config.NamedCALs.AssignedCALs.Count + ";");
                    Console.Write(config.NamedCALs.InLicense + ";");
                    Console.Write(config.NamedCALs.LeasedCALs.Count + ";");
                    Console.Write(config.NamedCALs.AllowDynamicAssignment + ";");
                    Console.Write(config.NamedCALs.AllowLicenseLease + ";");
                    Console.Write(config.DocumentCALs.Assigned + ";");
                    Console.Write(config.DocumentCALs.InLicense + ";");
                    Console.Write(config.SessionCALs.Available + ";");
                    Console.Write(config.SessionCALs.InLicense + ";");
                    Console.Write(config.UsageCALs.Available + ";");
                    Console.WriteLine(config.UsageCALs.InLicense);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Ejemplo n.º 11
0
        static void Main()
        {
            //Application.EnableVisualStyles();
            // Application.SetCompatibleTextRenderingDefault(false);
            // Application.Run(new Form1());

            //Connection connection = new Connection("http://ushdc0154:4799/QMS/Service", "x","x","x");
            //Connection connection = new Connection("http://usndc0153:4799/QMS/Service", "x", "x", "x");
            Connection connection = new Connection("http://10.6.3.101:4799/QMS/Service", "x", "x", "x");

            QMSClient client = connection.getClient();


            QVDistributionServer server = new QVDistributionServer(client);
            //List<DocumentNode> sourceDocuments = qds.documentNodes;
            //foreach (DocumentNode document in sourceDocuments) {
            //    Console.WriteLine( $"RelativePath: {document.RelativePath}; Name: {document.Name}; TaskCount: {document.TaskCount};" );
            //}
            List <TaskInfo> tasks = server.tasks;

            foreach (TaskInfo task in tasks)
            {
                Console.WriteLine($"ID: {task.ID}; Name: {task.Name};");
            }


            //Guid taskId = new Guid("201c22ad-ea23-45dc-bbf8-53b2a8d75405");
            //QMSAPI.TaskStatus taskStatus = client.GetTaskStatus(taskId, TaskStatusScope.Extended);
            //Console.WriteLine(taskStatus.Extended.TaskSummary);
            //Console.WriteLine(taskStatus.Extended.FinishedTime);

            //QVServer server = new QVServer(client);
            //List<AssignedNamedCAL> currentCALs = server.calls.NamedCALs.AssignedCALs.ToList();
            //foreach (AssignedNamedCAL call in currentCALs) {
            //    Console.WriteLine($"UserName: {call.UserName}; LastUsed: {call.LastUsed};");
            //}

            //QVManagementService qms = new QVManagementService(client);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Remove CALs
        /// </summary>
        public static void Remove()
        {
            try
            {
                // Initiate backend client
                var backendClient = new QMSClient();

                // Get a time limited service key
                ServiceKeyClientMessageInspector.ServiceKey = backendClient.GetTimeLimitedServiceKey();

                // Get available QlikView Servers
                var serviceList = backendClient.GetServices(ServiceTypes.QlikViewServer);

                // Number of inactive days
                const int days = -30;

                // Loop through available servers
                foreach (var server in serviceList)
                {
                    /**********************
                    *     NAMED CALS
                    **********************/

                    // Get CAL configuration
                    var config = backendClient.GetCALConfiguration(server.ID, CALConfigurationScope.NamedCALs);

                    // Get number of users BEFORE modifications
                    var numberOfUsers = config.NamedCALs.AssignedCALs.Count;

                    // Iterate through all CAL's and remove the inactive ones
                    foreach (var c in config.NamedCALs.AssignedCALs.ToList().Where(u => u.LastUsed.Year > 0001 && u.LastUsed.CompareTo(DateTime.UtcNow.AddDays(days)) == -1))
                    {
                        config.NamedCALs.AssignedCALs.Remove(c);
                    }

                    // Save changes
                    backendClient.SaveCALConfiguration(config);

                    // Get number of users BEFORE modifications
                    var removedUsers = numberOfUsers - config.NamedCALs.AssignedCALs.Count;

                    if (removedUsers <= 0)
                    {
                        Console.WriteLine(String.Format("No CALs to remove on {0}", server.Name));
                    }
                    else
                    {
                        Console.WriteLine(String.Format("Removed {0} CALs on {1}", removedUsers, server.Name));
                    }

                    /**********************
                    *   DOCUMENT CALS
                    **********************/

                    // Get Document CAL's
                    var userDocuments = backendClient.GetUserDocuments(server.ID);

                    foreach (var docNode in userDocuments)
                    {
                        // Get licensing meta data
                        var metaData = backendClient.GetDocumentMetaData(docNode, DocumentMetaDataScope.Licensing);

                        // Get number of users BEFORE modifications
                        numberOfUsers = metaData.Licensing.AssignedCALs.Count;

                        // Iterate through all CAL's and remove the inactive ones
                        foreach (var c in metaData.Licensing.AssignedCALs.ToList().Where(u => u.LastUsed.Year > 0001 && u.LastUsed.CompareTo(DateTime.UtcNow.AddDays(days)) == -1))
                        {
                            metaData.Licensing.AssignedCALs.Remove(c);
                        }

                        // Save changes
                        backendClient.SaveDocumentMetaData(metaData);

                        // Get number of users AFTER modifications
                        removedUsers = numberOfUsers - metaData.Licensing.AssignedCALs.Count;

                        if (removedUsers <= 0)
                        {
                            Console.WriteLine(String.Format("No Document CALs to remove from '{0}' on {1}", docNode.Name, server.Name));
                        }
                        else
                        {
                            Console.WriteLine(String.Format("Removed {0} Document CALs from '{1}' on {2}", removedUsers, docNode.Name, server.Name));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        /// <summary>
        /// ADD CALs
        /// </summary>
        /// <param name="documents"></param>
        /// <param name="users"></param>
        public static void Add(ICollection<string> documents, ICollection<string> users)
        {
            try
            {
                // Initiate backend client
                var backendClient = new QMSClient();

                // Get a time limited service key
                ServiceKeyClientMessageInspector.ServiceKey = backendClient.GetTimeLimitedServiceKey();

                // Get available QlikView Servers
                var serviceList = backendClient.GetServices(ServiceTypes.QlikViewServer);

                if (documents.Count == 0)
                // NAMED CALS
                {
                    // Loop through available servers
                    foreach (var server in serviceList)
                    {
                        // Get Named CALs
                        var config = backendClient.GetCALConfiguration(server.ID, CALConfigurationScope.NamedCALs);

                        // Get number of users BEFORE modifications
                        var numberOfCals = config.NamedCALs.AssignedCALs.Count;

                        // Add CAL's (already existing CAL's seems unaffected, but how to check for them? Is it necessary?)
                        foreach (var user in users.Select(u => new AssignedNamedCAL
                        {
                            UserName = u.ToUpper(),
                        }))
                        {
                            config.NamedCALs.AssignedCALs.Add(user);
                        }

                        // Save changes
                        backendClient.SaveCALConfiguration(config);

                        // Get number of users AFTER modifications
                        var addedCals = config.NamedCALs.AssignedCALs.Count - numberOfCals;

                        if (addedCals <= 0)
                            Console.WriteLine(String.Format("Nothing to add on {0}", server.Name));
                        else
                            Console.WriteLine(String.Format("Added {0} CALs on {1}", addedCals, server.Name));

                        var inLicense = config.NamedCALs.InLicense;
                        var assigned = config.NamedCALs.Assigned;

                        // Warn if not enough available CAL's
                        if (addedCals >= inLicense)
                            Console.WriteLine(String.Format("WARNING: Attempted to assign {0} CALs on {1} but the license only allows {2} CALs.", addedCals, server.Name, inLicense));
                        else if (assigned >= inLicense)
                            Console.WriteLine("WARNING: All available CALs in the license have been assigned.");
                    }
                }
                // DOCUMENT CALS
                else
                {
                    // Loop through available servers
                    foreach (var server in serviceList)
                    {
                        // Get documents on each server
                        var userDocuments = backendClient.GetUserDocuments(server.ID);

                        // Loop through available documents
                        foreach (var docNode in userDocuments)
                        {
                            // Continue if no matching documents
                            if (!documents.Contains(docNode.Name.ToLower())) continue;

                            var metaData = backendClient.GetDocumentMetaData(docNode, DocumentMetaDataScope.Licensing);

                            // Get allocated CAL's for document
                            var allocatedCals = metaData.Licensing.CALsAllocated;

                            // Allocate more CAL's if necessary
                            if (users.Count > allocatedCals)
                                metaData.Licensing.CALsAllocated = users.Count();

                            // Add document CAL's
                            foreach (var user in users.Select(u => new AssignedNamedCAL
                            {
                                UserName = u
                            }))
                            {
                                metaData.Licensing.AssignedCALs.Add(user);
                            }

                            // Save changes
                            backendClient.SaveDocumentMetaData(metaData);

                            Console.WriteLine(String.Format("Added {0} Document CALs to '{1}' on {2}", users.Count(), docNode.Name, server.Name));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        /// <summary>
        /// Remove CALs
        /// </summary>
        public static void Remove()
        {
            try
            {
                // Initiate backend client
                var backendClient = new QMSClient();

                // Get a time limited service key
                ServiceKeyClientMessageInspector.ServiceKey = backendClient.GetTimeLimitedServiceKey();

                // Get available QlikView Servers
                var serviceList = backendClient.GetServices(ServiceTypes.QlikViewServer);

                // Number of inactive days
                const int days = -30;

                // Loop through available servers
                foreach (var server in serviceList)
                {
                    /**********************
                     *     NAMED CALS
                     **********************/

                    // Get CAL configuration
                    var config = backendClient.GetCALConfiguration(server.ID, CALConfigurationScope.NamedCALs);

                    // Get number of users BEFORE modifications
                    var numberOfUsers = config.NamedCALs.AssignedCALs.Count;

                    // Iterate through all CAL's and remove the inactive ones
                    foreach (var c in config.NamedCALs.AssignedCALs.ToList().Where(u => u.LastUsed.Year > 0001 && u.LastUsed.CompareTo(DateTime.UtcNow.AddDays(days)) == -1))
                        config.NamedCALs.AssignedCALs.Remove(c);

                    // Save changes
                    backendClient.SaveCALConfiguration(config);

                    // Get number of users BEFORE modifications
                    var removedUsers = numberOfUsers - config.NamedCALs.AssignedCALs.Count;

                    if (removedUsers <= 0)
                        Console.WriteLine(String.Format("No CALs to remove on {0}", server.Name));
                    else
                        Console.WriteLine(String.Format("Removed {0} CALs on {1}", removedUsers, server.Name));

                    /**********************
                     *   DOCUMENT CALS
                     **********************/

                    // Get Document CAL's
                    var userDocuments = backendClient.GetUserDocuments(server.ID);

                    foreach (var docNode in userDocuments)
                    {
                        // Get licensing meta data
                        var metaData = backendClient.GetDocumentMetaData(docNode, DocumentMetaDataScope.Licensing);

                        // Get number of users BEFORE modifications
                        numberOfUsers = metaData.Licensing.AssignedCALs.Count;

                        // Iterate through all CAL's and remove the inactive ones
                        foreach (var c in metaData.Licensing.AssignedCALs.ToList().Where(u => u.LastUsed.Year > 0001 && u.LastUsed.CompareTo(DateTime.UtcNow.AddDays(days)) == -1))
                            metaData.Licensing.AssignedCALs.Remove(c);

                        // Save changes
                        backendClient.SaveDocumentMetaData(metaData);

                        // Get number of users AFTER modifications
                        removedUsers = numberOfUsers - metaData.Licensing.AssignedCALs.Count;

                        if (removedUsers <= 0)
                            Console.WriteLine(String.Format("No Document CALs to remove from '{0}' on {1}", docNode.Name, server.Name));
                        else
                            Console.WriteLine(String.Format("Removed {0} Document CALs from '{1}' on {2}", removedUsers, docNode.Name, server.Name));
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        /// <summary>
        /// List DMS users
        /// </summary>
        /// <param name="documents"></param>
        public static void List(ICollection<string> documents)
        {
            try
            {
                // Initiate backend client
                var backendClient = new QMSClient();

                // Get a time limited service key
                ServiceKeyClientMessageInspector.ServiceKey = backendClient.GetTimeLimitedServiceKey();

                // Get available QlikView Servers
                var serviceList = backendClient.GetServices(ServiceTypes.QlikViewServer);

                Console.WriteLine("UserName;Document;Server");

                // Loop through available servers
                foreach (var server in serviceList)
                {
                    // Get documents on each server
                    var userDocuments = backendClient.GetUserDocuments(server.ID);

                    // Loop through available documents
                    foreach (var docNode in userDocuments)
                    {
                        if (documents.Count != 0 && !documents.Contains(docNode.Name.ToLower())) continue;

                        // Get authorization meta data
                        var metaData = backendClient.GetDocumentMetaData(docNode, DocumentMetaDataScope.Authorization);

                        foreach (var user in metaData.Authorization.Access)
                            Console.WriteLine(String.Format("{0};{1};{2}", user.UserName, docNode.Name, server.Name));
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Ejemplo n.º 16
0
        static void Main(string[] args)
        {
            var options = new ConsoleOptions();

            CommandLine.Parser.Default.ParseArguments(args, options);

            for (int h = 0; h < args.Length; h++)
            {
                var ar = args[h].ToString();
                if (ar.ToLower(CultureInfo.InvariantCulture).IndexOf("-h", System.StringComparison.Ordinal) >= 0)
                {
                    Environment.Exit(0);
                }
            }

            var serverArg = options.Server;
            var filesArg  = options.Params;
            var server    = "";
            var files     = "";

            if (serverArg == null)
            {
                //Console.WriteLine(GenerateReturnMsg("error",  "Missing server. See: wearable-qv --help for more info"));
                //Environment.Exit(0);
                server = "http://*****:*****@"C:\ProgramData\QlikTech\Documents\PebbleData1.qvw,PebbleData1;C:\ProgramData\QlikTech\Documents\PebbleData.qvw,PebbleData;"; //;C:\ProgramData\QlikTech\Documents\PebbleData1.qvw,PebbleData1;
            }
            else
            {
                files = filesArg;
            }


            QMSClient Client;
            Guid      qvsId = new Guid("00000000-0000-0000-0000-000000000000");
            Guid      qdsId = new Guid("00000000-0000-0000-0000-000000000000");

            //try
            {
                Client = new QMSClient("BasicHttpBinding_IQMS", server);
                string key = Client.GetTimeLimitedServiceKey();
                ServiceKeyClientMessageInspector.ServiceKey = key;

                List <ServiceInfo> myServices = Client.GetServices(ServiceTypes.All);

                foreach (ServiceInfo service in myServices)
                {
                    if (service.Type == ServiceTypes.QlikViewServer)
                    {
                        qvsId = service.ID;
                    }

                    if (service.Type == ServiceTypes.QlikViewDistributionService)
                    {
                        qdsId = service.ID;
                    }
                }

                DataTable  dtFiles = new DataTable();
                DataColumn dcFile  = new DataColumn("file");
                DataColumn dcField = new DataColumn("field");
                dtFiles.Columns.Add(dcFile);
                dtFiles.Columns.Add(dcField);

                var filesandfields = files.Split(';');

                try
                {
                    for (var i = 0; i < filesandfields.Length; i++)
                    {
                        if (filesandfields[i].Length > 0)
                        {
                            var     singlefile = filesandfields[i].Split(',');
                            DataRow dr         = dtFiles.NewRow();
                            dr["file"]  = singlefile[0];
                            dr["field"] = singlefile[1];
                            dtFiles.Rows.Add(dr);
                        }
                    }
                }
                catch (System.Exception ex)
                {
                    Console.WriteLine(GenerateReturnMsg("error", "Wrong format of passed file(s) parameteres. The format should be: <fullpath to the file>,<field name>;"));
                    Environment.Exit(0);
                }


                var jsObj     = new JObject();
                var jsonArray = new JArray();
                jsObj.Add("data", jsonArray);

                for (var i = 0; i < dtFiles.Rows.Count; i++)
                {
                    string field    = dtFiles.Rows[i]["field"].ToString();
                    string filePath = dtFiles.Rows[i]["file"].ToString();

                    QDSDocumentSessionConfiguration qds = new QDSDocumentSessionConfiguration();
                    qds.FilePath = filePath;
                    qds.QDSID    = qdsId;

                    FileInfo fi = new FileInfo(filePath);

                    //try
                    {
                        var t = Client.CreateSession(qds);

                        if (t.OpenDocumentResult == DocumentState.OpenedSuccessfully)
                        {
                            //try
                            {
                                var data = Client.GetFieldContentList(t, field, FieldContentType.All, 0, 100);

                                List <string> categories = new List <string>();
                                foreach (var vals in data[0].Values)
                                {
                                    var d  = vals.Text;
                                    var d1 = d.Split('_');
                                    categories.Add(d1[0]);
                                }

                                categories = categories.Distinct().ToList();

                                for (var c = 0; c < categories.Count; c++)
                                {
                                    var jsArea     = new JObject();
                                    var jsAreaData = new JArray();
                                    jsArea.Add("areadata", jsAreaData);
                                    jsArea.Add("name", categories[c]);

                                    foreach (var vals in data[0].Values)
                                    {
                                        var d  = vals.Text;
                                        var d1 = d.Split('_');
                                        if (d1[0] == categories[c])
                                        {
                                            var jsonObj = new JObject();
                                            jsonObj.Add("file", fi.FullName.ToString());
                                            jsonObj.Add("field", field);
                                            jsonObj.Add("status", t.OpenDocumentResult.ToString());
                                            jsonObj.Add("main", d1[0]);
                                            jsonObj.Add("category", d1[1]);
                                            jsonObj.Add("value", d1[2]);
                                            jsAreaData.Add(jsonObj);
                                        }
                                    }

                                    jsonArray.Add(jsArea);
                                }
                            }
                            //catch (System.Exception)
                            {
                                //    Console.WriteLine(GenerateReturnMsg("error", "Cannot get field content for field '" + field + "' in file " + fi.FullName));
                                //    Environment.Exit(0);
                            }
                        }
                        else
                        {
                            var jsonObj = new JObject();
                            jsonObj.Add("file", fi.FullName.ToString());
                            jsonObj.Add("field", field);
                            jsonObj.Add("status", t.OpenDocumentResult.ToString());
                            jsonObj.Add("main", "");
                            jsonObj.Add("category", "");
                            jsonObj.Add("value", "");
                            jsonArray.Add(jsonObj);
                        }

                        Client.CloseSession(t);
                    }
                    //catch (System.Exception)
                    {
                        //Console.WriteLine(GenerateReturnMsg("error", "Cannot create sessioin for for file " + fi.FullName));
                        //Environment.Exit(0);
                    }
                }

                Console.WriteLine(jsObj.ToString());

                Console.ReadLine();
            }
            //catch (System.Exception ex)
            {
                //    Console.WriteLine(GenerateReturnMsg("error", "Cannot reach the Qlikview Server at " + server));
                //    Environment.Exit(0);
            }
        }
        public static void DocInfo(ICollection <string> documents)
        {
            try
            {
                // Initiate backend client
                var backendClient = new QMSClient();

                // Get a time limited service key
                ServiceKeyClientMessageInspector.ServiceKey = backendClient.GetTimeLimitedServiceKey();

                // Get available QlikView Servers
                var serviceList = backendClient.GetServices(ServiceTypes.QlikViewServer);

                Console.WriteLine("Document;Server;Preloaded;Plugin;Mobile;AjaxZfc;Download;Category;SourceDocument");

                // Loop through available servers
                foreach (var server in serviceList)
                {
                    // Get documents on each server
                    var userDocuments = backendClient.GetUserDocuments(server.ID);

                    // Loop through available documents
                    foreach (var docNode in userDocuments)
                    {
                        if (documents.Count != 0 && !documents.Contains(docNode.Name.ToLower()))
                        {
                            continue;
                        }

                        // Get authorization meta data
                        var metaData = backendClient.GetDocumentMetaData(docNode, DocumentMetaDataScope.All);

                        // Check if PreloadMode is Restricted, if so get the dates
                        var preloadMode = metaData.Server.DocumentLoad[0].Mode;

                        //var preloadMode = metaData.Server.Preload.Mode.ToString();
                        //var loadedDays = "";
                        //var between = "";
                        //if (preloadMode == "Restricted")
                        //{
                        //    loadedDays = metaData.Server.Preload.DaysOfWeek.Aggregate(loadedDays, (current, dayOfWeek) => current + (dayOfWeek.ToString().Substring(0, 2) + " ")).Trim();
                        //    between = metaData.Server.Preload.StartTime.ToShortTimeString() + "-" + metaData.Server.Preload.EndTime.ToShortTimeString();
                        //}

                        // Check which clients are enabled
                        var accessMethods = metaData.Server.Access.Methods.ToString();
                        var pluginClient  = accessMethods.Contains("PluginClient") ? 1 : 0;
                        var ajaxClient    = accessMethods.Contains("ZeroFootprintClient") ? 1 : 0;
                        var download      = accessMethods.Contains("Download") ? 1 : 0;
                        var mobileClient  = accessMethods.Contains("MobileClient") ? 1 : 0;

                        // Check if we have subfolders
                        var relativePath = docNode.RelativePath;
                        if (relativePath != "")
                        {
                            relativePath += "\\";
                        }

                        Console.WriteLine(String.Format("{0};{1};{2};{3};{4};{5};{6};{7};{8}", relativePath + docNode.Name,
                                                        server.Name, preloadMode, pluginClient, mobileClient, ajaxClient, download, metaData.DocumentInfo.Category, metaData.DocumentInfo.SourceName));
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
 public QVManagementService(QMSClient client)
 {
     this.client = client;
     qms         = client.GetServices(ServiceTypes.QlikViewServer).FirstOrDefault();
 }
        /// <summary>
        /// Add DMS users
        /// </summary>
        /// <param name="documents"></param>
        /// <param name="users"></param>
        public static void Add(ICollection<string> documents, ICollection<string> users)
        {
            try
            {
                // Initiate backend client
                var backendClient = new QMSClient();

                // Get a time limited service key
                ServiceKeyClientMessageInspector.ServiceKey = backendClient.GetTimeLimitedServiceKey();

                // Get available QlikView Servers
                var serviceList = backendClient.GetServices(ServiceTypes.QlikViewServer);

                // Loop through available servers
                foreach (var server in serviceList)
                {
                    // Get documents on each server
                    var userDocuments = backendClient.GetUserDocuments(server.ID);

                    // Loop through available documents
                    foreach (var docNode in userDocuments)
                    {
                        // Continue if no matching documents
                        if (documents.Count != 0 && !documents.Contains(docNode.Name.ToLower())) continue;

                        // Get authorization metadata
                        var metaData = backendClient.GetDocumentMetaData(docNode, DocumentMetaDataScope.Authorization);

                        // Filter users already in DMS from the supplied list of users to avoid duplicates
                        var uniqueUsers = users.Except(metaData.Authorization.Access.Select(user => user.UserName).ToList());

                        // Get number of users on each document
                        var numberOfUsers = metaData.Authorization.Access.Count;

                        // Add new users
                        foreach (var user in uniqueUsers.Select(u => new DocumentAccessEntry
                        {
                            UserName = u,
                            AccessMode = DocumentAccessEntryMode.Always,
                            DayOfWeekConstraints = new List<DayOfWeek>()
                        }))
                        {
                            metaData.Authorization.Access.Add(user);
                        }

                        // Save changes
                        backendClient.SaveDocumentMetaData(metaData);

                        // Get number of users AFTER modifications
                        var addedUsers = metaData.Authorization.Access.Count - numberOfUsers;

                        if (addedUsers <= 0)
                            Console.WriteLine(String.Format("Nothing to add to '{0}' on {1}", docNode.Name, server.Name));
                        else
                            Console.WriteLine(String.Format("Added {0} users to '{1}' on {2}", addedUsers, docNode.Name, server.Name));
                    }
                }
            }
            catch (System.Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        /// <summary>
        /// Remove DMS users
        /// </summary>
        /// <param name="documents"></param>
        /// <param name="users"></param>
        public static void Remove(ICollection<string> documents, List<string> users)
        {
            try
            {
                // Initiate backend client
                var backendClient = new QMSClient();

                // Get a time limited service key
                ServiceKeyClientMessageInspector.ServiceKey = backendClient.GetTimeLimitedServiceKey();

                // Get available QlikView Servers
                var serviceList = backendClient.GetServices(ServiceTypes.QlikViewServer);

                // Convert all usernames to lowercase
                users = users.ConvertAll(d => d.ToLower());

                // Loop through available servers
                foreach (var server in serviceList)
                {
                    // Get documents on each server
                    var userDocuments = backendClient.GetUserDocuments(server.ID);

                    // Loop through available documents
                    foreach (var docNode in userDocuments)
                    {
                        // Continue if no matching documents
                        if (documents.Count != 0 && !documents.Contains(docNode.Name.ToLower())) continue;

                        // Get authorization metadata
                        var metaData = backendClient.GetDocumentMetaData(docNode, DocumentMetaDataScope.Authorization);

                        // Get number of users BEFORE modifications
                        var numberOfUsers = metaData.Authorization.Access.Count;

                        if (users.Count == 0)
                            // Remove all users if no users were specified
                            metaData.Authorization.Access.RemoveRange(0, numberOfUsers);
                        else
                        {
                            // Remove matching users
                            foreach (var u in metaData.Authorization.Access.ToList().Where(u => users.Contains(u.UserName.ToLower())))
                                metaData.Authorization.Access.Remove(u);
                        }

                        // Save changes
                        backendClient.SaveDocumentMetaData(metaData);

                        // Get number of users AFTER modifications
                        var removedUsers = numberOfUsers - metaData.Authorization.Access.Count;

                        if (removedUsers <= 0)
                            Console.WriteLine(String.Format("Nothing to remove from '{0}' on {1}", docNode.Name, server.Name));
                        else
                            Console.WriteLine(String.Format("Removed {0} users from '{1}' on {2}", removedUsers, docNode.Name, server.Name));
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        /// <summary>
        /// List information about CALs
        /// </summary>
        public static void CalInfo()
        {
            try
            {
                // Initiate backend client
                var backendClient = new QMSClient();

                // Get a time limited service key
                ServiceKeyClientMessageInspector.ServiceKey = backendClient.GetTimeLimitedServiceKey();

                // Get available QlikView Servers
                var serviceList = backendClient.GetServices(ServiceTypes.QlikViewServer);

                Console.WriteLine("Server;NamedAssigned;NamedInLicense;NamedLeased;NamedAllowDynamic;NamedAllowLease;DocAssigned;DocInLicense;SessionAvailable;SessionInLicense;UsageAvailable;UsageInLicense");

                // Loop through available servers
                foreach (var server in serviceList)
                {
                    // Get Named CALs
                    var config = backendClient.GetCALConfiguration(server.ID, CALConfigurationScope.All);

                    Console.Write(server.Name + ";");
                    Console.Write(config.NamedCALs.AssignedCALs.Count + ";");
                    Console.Write(config.NamedCALs.InLicense + ";");
                    Console.Write(config.NamedCALs.LeasedCALs.Count + ";");
                    Console.Write(config.NamedCALs.AllowDynamicAssignment + ";");
                    Console.Write(config.NamedCALs.AllowLicenseLease + ";");
                    Console.Write(config.DocumentCALs.Assigned + ";");
                    Console.Write(config.DocumentCALs.InLicense + ";");
                    Console.Write(config.SessionCALs.Available + ";");
                    Console.Write(config.SessionCALs.InLicense + ";");
                    Console.Write(config.UsageCALs.Available + ";");
                    Console.WriteLine(config.UsageCALs.InLicense);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Ejemplo n.º 22
0
        /// <summary>
        /// ADD CALs
        /// </summary>
        /// <param name="documents"></param>
        /// <param name="users"></param>
        public static void Add(ICollection <string> documents, ICollection <string> users)
        {
            try
            {
                // Initiate backend client
                var backendClient = new QMSClient();

                // Get a time limited service key
                ServiceKeyClientMessageInspector.ServiceKey = backendClient.GetTimeLimitedServiceKey();

                // Get available QlikView Servers
                var serviceList = backendClient.GetServices(ServiceTypes.QlikViewServer);

                if (documents.Count == 0)
                // NAMED CALS
                {
                    // Loop through available servers
                    foreach (var server in serviceList)
                    {
                        // Get Named CALs
                        var config = backendClient.GetCALConfiguration(server.ID, CALConfigurationScope.NamedCALs);

                        // Get number of users BEFORE modifications
                        var numberOfCals = config.NamedCALs.AssignedCALs.Count;

                        // Add CAL's (already existing CAL's seems unaffected, but how to check for them? Is it necessary?)
                        foreach (var user in users.Select(u => new AssignedNamedCAL
                        {
                            UserName = u.ToUpper(),
                        }))
                        {
                            config.NamedCALs.AssignedCALs.Add(user);
                        }

                        // Save changes
                        backendClient.SaveCALConfiguration(config);

                        // Get number of users AFTER modifications
                        var addedCals = config.NamedCALs.AssignedCALs.Count - numberOfCals;

                        if (addedCals <= 0)
                        {
                            Console.WriteLine(String.Format("Nothing to add on {0}", server.Name));
                        }
                        else
                        {
                            Console.WriteLine(String.Format("Added {0} CALs on {1}", addedCals, server.Name));
                        }

                        var inLicense = config.NamedCALs.InLicense;
                        var assigned  = config.NamedCALs.Assigned;

                        // Warn if not enough available CAL's
                        if (addedCals >= inLicense)
                        {
                            Console.WriteLine(String.Format("WARNING: Attempted to assign {0} CALs on {1} but the license only allows {2} CALs.", addedCals, server.Name, inLicense));
                        }
                        else if (assigned >= inLicense)
                        {
                            Console.WriteLine("WARNING: All available CALs in the license have been assigned.");
                        }
                    }
                }
                // DOCUMENT CALS
                else
                {
                    // Loop through available servers
                    foreach (var server in serviceList)
                    {
                        // Get documents on each server
                        var userDocuments = backendClient.GetUserDocuments(server.ID);

                        // Loop through available documents
                        foreach (var docNode in userDocuments)
                        {
                            // Continue if no matching documents
                            if (!documents.Contains(docNode.Name.ToLower()))
                            {
                                continue;
                            }

                            var metaData = backendClient.GetDocumentMetaData(docNode, DocumentMetaDataScope.Licensing);

                            // Get allocated CAL's for document
                            var allocatedCals = metaData.Licensing.CALsAllocated;

                            // Allocate more CAL's if necessary
                            if (users.Count > allocatedCals)
                            {
                                metaData.Licensing.CALsAllocated = users.Count();
                            }

                            // Add document CAL's
                            foreach (var user in users.Select(u => new AssignedNamedCAL
                            {
                                UserName = u
                            }))
                            {
                                metaData.Licensing.AssignedCALs.Add(user);
                            }

                            // Save changes
                            backendClient.SaveDocumentMetaData(metaData);

                            Console.WriteLine(String.Format("Added {0} Document CALs to '{1}' on {2}", users.Count(), docNode.Name, server.Name));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        /// <summary>
        /// List CALs
        /// </summary>
        public static void List()
        {
            try
            {
                // Initiate backend client
                var backendClient = new QMSClient();

                // Get a time limited service key
                ServiceKeyClientMessageInspector.ServiceKey = backendClient.GetTimeLimitedServiceKey();

                // Get available QlikView Servers
                var serviceList = backendClient.GetServices(ServiceTypes.QlikViewServer);

                Console.WriteLine("UserName;LastUsed;QuarantinedUntil;Document;Server");

                // Loop through available servers
                foreach (var server in serviceList)
                {
                    // Get Named CALs
                    var config = backendClient.GetCALConfiguration(server.ID, CALConfigurationScope.NamedCALs);

                    foreach (var c in config.NamedCALs.AssignedCALs)
                        Console.WriteLine(String.Format("{0};{1};{2};{3};{4}", c.UserName, c.LastUsed.Year > 0001 ? c.LastUsed.ToString() : "", c.QuarantinedUntil.Year > 0001 ? c.QuarantinedUntil.ToString() : "", "", server.Name));

                    // Get Document CAL's
                    var userDocuments = backendClient.GetUserDocuments(server.ID);

                    foreach (var docNode in userDocuments)
                    {
                        var metaData = backendClient.GetDocumentMetaData(docNode, DocumentMetaDataScope.Licensing);

                        foreach (var c in metaData.Licensing.AssignedCALs)
                            Console.WriteLine(String.Format("{0};{1};{2};{3};{4}", c.UserName, c.LastUsed.Year > 0001 ? c.LastUsed.ToString() : "", c.QuarantinedUntil.Year > 0001 ? c.QuarantinedUntil.ToString() : "", docNode.Name, server.Name));
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        /// <summary>
        /// Remove DMS users
        /// </summary>
        /// <param name="documents"></param>
        /// <param name="users"></param>
        public static void Remove(ICollection <string> documents, List <string> users)
        {
            try
            {
                // Initiate backend client
                var backendClient = new QMSClient();

                // Get a time limited service key
                ServiceKeyClientMessageInspector.ServiceKey = backendClient.GetTimeLimitedServiceKey();

                // Get available QlikView Servers
                var serviceList = backendClient.GetServices(ServiceTypes.QlikViewServer);

                // Convert all usernames to lowercase
                users = users.ConvertAll(d => d.ToLower());

                // Loop through available servers
                foreach (var server in serviceList)
                {
                    // Get documents on each server
                    var userDocuments = backendClient.GetUserDocuments(server.ID);

                    // Loop through available documents
                    foreach (var docNode in userDocuments)
                    {
                        // Continue if no matching documents
                        if (documents.Count != 0 && !documents.Contains(docNode.Name.ToLower()))
                        {
                            continue;
                        }

                        // Get authorization metadata
                        var metaData = backendClient.GetDocumentMetaData(docNode, DocumentMetaDataScope.Authorization);

                        // Get number of users BEFORE modifications
                        var numberOfUsers = metaData.Authorization.Access.Count;

                        if (users.Count == 0)
                        {
                            // Remove all users if no users were specified
                            metaData.Authorization.Access.RemoveRange(0, numberOfUsers);
                        }
                        else
                        {
                            // Remove matching users
                            foreach (var u in metaData.Authorization.Access.ToList().Where(u => users.Contains(u.UserName.ToLower())))
                            {
                                metaData.Authorization.Access.Remove(u);
                            }
                        }

                        // Save changes
                        backendClient.SaveDocumentMetaData(metaData);

                        // Get number of users AFTER modifications
                        var removedUsers = numberOfUsers - metaData.Authorization.Access.Count;

                        if (removedUsers <= 0)
                        {
                            Console.WriteLine(String.Format("Nothing to remove from '{0}' on {1}", docNode.Name, server.Name));
                        }
                        else
                        {
                            Console.WriteLine(String.Format("Removed {0} users from '{1}' on {2}", removedUsers, docNode.Name, server.Name));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        public static void DocInfo(ICollection<string> documents)
        {
            try
            {
                // Initiate backend client
                var backendClient = new QMSClient();

                // Get a time limited service key
                ServiceKeyClientMessageInspector.ServiceKey = backendClient.GetTimeLimitedServiceKey();

                // Get available QlikView Servers
                var serviceList = backendClient.GetServices(ServiceTypes.QlikViewServer);

                Console.WriteLine("Document;Server;Preloaded;Plugin;Mobile;AjaxZfc;Download;Category;SourceDocument");

                // Loop through available servers
                foreach (var server in serviceList)
                {
                    // Get documents on each server
                    var userDocuments = backendClient.GetUserDocuments(server.ID);

                    // Loop through available documents
                    foreach (var docNode in userDocuments)
                    {
                        if (documents.Count != 0 && !documents.Contains(docNode.Name.ToLower())) continue;

                        // Get authorization meta data
                        var metaData = backendClient.GetDocumentMetaData(docNode, DocumentMetaDataScope.All);

                        // Check if PreloadMode is Restricted, if so get the dates
                        var preloadMode = metaData.Server.DocumentLoad[0].Mode;

                        //var preloadMode = metaData.Server.Preload.Mode.ToString();
                        //var loadedDays = "";
                        //var between = "";
                        //if (preloadMode == "Restricted")
                        //{
                        //    loadedDays = metaData.Server.Preload.DaysOfWeek.Aggregate(loadedDays, (current, dayOfWeek) => current + (dayOfWeek.ToString().Substring(0, 2) + " ")).Trim();
                        //    between = metaData.Server.Preload.StartTime.ToShortTimeString() + "-" + metaData.Server.Preload.EndTime.ToShortTimeString();
                        //}

                        // Check which clients are enabled
                        var accessMethods = metaData.Server.Access.Methods.ToString();
                        var pluginClient = accessMethods.Contains("PluginClient") ? 1 : 0;
                        var ajaxClient = accessMethods.Contains("ZeroFootprintClient") ? 1 : 0;
                        var download = accessMethods.Contains("Download") ? 1 : 0;
                        var mobileClient = accessMethods.Contains("MobileClient") ? 1 : 0;

                        // Check if we have subfolders
                        var relativePath = docNode.RelativePath;
                        if (relativePath != "")
                            relativePath += "\\";

                        Console.WriteLine(String.Format("{0};{1};{2};{3};{4};{5};{6};{7};{8}", relativePath + docNode.Name,
                                                        server.Name, preloadMode, pluginClient, mobileClient, ajaxClient, download, metaData.DocumentInfo.Category, metaData.DocumentInfo.SourceName));
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        /// <summary>
        /// Add DMS users
        /// </summary>
        /// <param name="documents"></param>
        /// <param name="users"></param>
        public static void Add(ICollection <string> documents, ICollection <string> users)
        {
            try
            {
                // Initiate backend client
                var backendClient = new QMSClient();

                // Get a time limited service key
                ServiceKeyClientMessageInspector.ServiceKey = backendClient.GetTimeLimitedServiceKey();

                // Get available QlikView Servers
                var serviceList = backendClient.GetServices(ServiceTypes.QlikViewServer);

                // Loop through available servers
                foreach (var server in serviceList)
                {
                    // Get documents on each server
                    var userDocuments = backendClient.GetUserDocuments(server.ID);

                    // Loop through available documents
                    foreach (var docNode in userDocuments)
                    {
                        // Continue if no matching documents
                        if (documents.Count != 0 && !documents.Contains(docNode.Name.ToLower()))
                        {
                            continue;
                        }

                        // Get authorization metadata
                        var metaData = backendClient.GetDocumentMetaData(docNode, DocumentMetaDataScope.Authorization);

                        // Filter users already in DMS from the supplied list of users to avoid duplicates
                        var uniqueUsers = users.Except(metaData.Authorization.Access.Select(user => user.UserName).ToList());

                        // Get number of users on each document
                        var numberOfUsers = metaData.Authorization.Access.Count;

                        // Add new users
                        foreach (var user in uniqueUsers.Select(u => new DocumentAccessEntry
                        {
                            UserName = u,
                            AccessMode = DocumentAccessEntryMode.Always,
                            DayOfWeekConstraints = new List <DayOfWeek>()
                        }))
                        {
                            metaData.Authorization.Access.Add(user);
                        }

                        // Save changes
                        backendClient.SaveDocumentMetaData(metaData);

                        // Get number of users AFTER modifications
                        var addedUsers = metaData.Authorization.Access.Count - numberOfUsers;

                        if (addedUsers <= 0)
                        {
                            Console.WriteLine(String.Format("Nothing to add to '{0}' on {1}", docNode.Name, server.Name));
                        }
                        else
                        {
                            Console.WriteLine(String.Format("Added {0} users to '{1}' on {2}", addedUsers, docNode.Name, server.Name));
                        }
                    }
                }
            }
            catch (System.Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Ejemplo n.º 27
0
 public QVServer(QMSClient client)
 {
     this.client = client;
     qvs         = client.GetServices(ServiceTypes.QlikViewServer).FirstOrDefault();
     calls       = client.GetCALConfiguration(qvs.ID, CALConfigurationScope.All);
 }