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); }