public static void ConnectionManager_AtumClientLicenseResponse(PendingClientLicenseResponse clientLicenseResponse)
        {
            lock (PendingClientLicenseRequests)
            {
                foreach (var pendingLicense in PendingClientLicenseRequests)
                {
                    if (pendingLicense.Id == clientLicenseResponse.Id)
                    {
                        if (!ActivedLicenses.Exists(s => s.Id == pendingLicense.Id))
                        {
                            ActivedLicenses.Add(pendingLicense);
                        }

                        PendingClientLicenseRequests.Remove(pendingLicense);
                        DAL.Managers.LoggingManager.WriteToLog("License Manager", "Pending License: " + clientLicenseResponse.LicenseType.ToString(), "Removed");
                        break;
                    }
                }
            }

            lock (AvailableLicenses)
            {
                var currentLicenseFound = false;
                foreach (var availableLicense in AvailableLicenses)
                {
                    if (availableLicense.LicenseType == clientLicenseResponse.LicenseType)
                    {
                        currentLicenseFound             = true;
                        availableLicense.ExpirationDate = availableLicense.ExpirationDate.AddHours(4);
                        DAL.Managers.LoggingManager.WriteToLog("License Manager", "License: " + clientLicenseResponse.LicenseType.ToString(), "EndsOn Timestamp updated");

                        PendingLicensesChanged?.Invoke(null, null);
                        break;
                    }
                }

                if (!currentLicenseFound)
                {
                    AvailableLicenses.Add(new AvailableLicense()
                    {
                        Activated = true, ExpirationDate = DateTime.Now.AddDays(1), LicenseType = clientLicenseResponse.LicenseType
                    });
                    DAL.Managers.LoggingManager.WriteToLog("License Manager", "License: " + clientLicenseResponse.LicenseType.ToString(), "Added");

                    AvailableLicensesChanged?.Invoke(null, null);
                }
            }
        }
        public static void Stop()
        {
            if (_licenseRequestPoller != null)
            {
                _licenseRequestPoller.Stop();

                PendingClientLicenseRequests.Clear();
                ActivedLicenses.Clear();
                AvailableLicenses.Clear();

                PendingLicensesChanged?.Invoke(null, null);
                AvailableLicensesChanged?.Invoke(null, null);

                if (!string.IsNullOrEmpty(UserProfileManager.UserProfile.LicenseServer_ServerName))
                {
                    var clientRemoveLicenseRequestAsEncodedXml   = new RemoveActiveClientLicenseRequest().ToEncodedXml();
                    var clientEncodedRemoveLicenseRequestMessage = new RemoveActiveClientLicenseRequestMessage();
                    clientEncodedRemoveLicenseRequestMessage.Message = clientRemoveLicenseRequestAsEncodedXml;
                    try
                    {
                        var ipAddresses = Dns.GetHostAddresses(UserProfileManager.UserProfile.LicenseServer_ServerName);
                        if (ipAddresses != null && ipAddresses.Length > 0)
                        {
                            foreach (var ipAddress in ipAddresses)
                            {
                                if (ipAddress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                                {
                                    DAL.Managers.ConnectionManager.SendAsXML(clientEncodedRemoveLicenseRequestMessage, ipAddress, 11006);
                                    DAL.Managers.LoggingManager.WriteToLog("License Manager", "Remove active licenses from server", "Send to server: " + ipAddress.ToString());
                                }
                            }
                        }
                    }
                    catch (Exception exc)
                    {
                        DAL.Managers.LoggingManager.WriteToLog("License Manager Error", "Remove active licenses from server", "Send to server (" + exc.Message + ")");
                    }
                }
            }
        }
 internal static void AddPendingLicenseRequest(PendingClientLicenseRequest clientLicenseRequest)
 {
     PendingClientLicenseRequests.Add(clientLicenseRequest);
     PendingLicensesChanged?.Invoke(null, null);
 }