7 Replies Latest reply: Apr 26, 2017 1:39 PM by Tom Puckett RSS

    QMSClient.SaveCALConfiguration doesn't seem to be working

    Sasa Katic

      Can anyone help me understand why this below would not remove named cals. It seems to work fine until the very last line where it does the save. I don't get any exceptions or error messages.

      When i look in QV Management console under System>Licenses i still see the ones that were supposed to be removed (Named user CALs)

      Client Build Number: 11.20.13314.0

       

      QMSClient Client;
        string QMS = "http://localhost:4799/QMS/Service";
        Client = new QMSClient("BasicHttpBinding_IQMS", QMS);
        string key = Client.GetTimeLimitedServiceKey();
        ServiceKeyClientMessageInspector.ServiceKey = key;

        List<ServiceInfo> MyQVS = Client.GetServices(ServiceTypes.QlikViewServer);
        Client.ClearQVSCache(QVSCacheObjects.All);

        CALConfiguration myCALs = Client.GetCALConfiguration(MyQVS[0].ID, CALConfigurationScope.NamedCALs);
        List<AssignedNamedCAL> currentNamedCALs = myCALs.NamedCALs.AssignedCALs.ToList();
        List<int> indexToRemove = new List<int>();

        int cnt = 1;
        for (int i = 0; i < currentNamedCALs.Count; i++)
        {
        if ((currentNamedCALs[i].QuarantinedUntil < System.DateTime.Now)
        && (currentNamedCALs[i].LastUsed < DateTime.Now.AddDays(daysFromToday)))
        {
        Console.WriteLine("[" + cnt + "] " + currentNamedCALs[i].UserName +
        "; Last used: " + currentNamedCALs[i].LastUsed);
        indexToRemove.Add(i);
        cnt++;
        }
        }
        Console.WriteLine();
        for (int i = indexToRemove.Count; i > 0; i--)
        {
        if (currentNamedCALs[indexToRemove[i - 1]] != null)
        {
        currentNamedCALs.RemoveAt(indexToRemove[i - 1]);
        }
        }

        Console.WriteLine("\nDone");
        myCALs.NamedCALs.AssignedCALs = currentNamedCALs;
        Client.SaveCALConfiguration(myCALs);