private static void SendRequest(PendingClientLicenseRequest clientLicenseRequest) { if (clientLicenseRequest != null) { var clientLicenseRequestAsEncodedXml = clientLicenseRequest.ToEncodedXml(); var clientEncodedLicenseRequestMessage = new PendingClientLicenseRequestMessage(); clientEncodedLicenseRequestMessage.Message = clientLicenseRequestAsEncodedXml; 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(clientEncodedLicenseRequestMessage, ipAddress, 11006); DAL.Managers.LoggingManager.WriteToLog("License Manager", "Pending License: " + clientLicenseRequest.LicenseType.ToString(), "Send to server: " + ipAddress.ToString()); } } } } catch (Exception exc) { DAL.Managers.LoggingManager.WriteToLog("License Manager Error", "Pending License", "Send to server (" + exc.Message + ")"); } } }
internal static void AddPendingLicenseRequest(PendingClientLicenseRequest clientLicenseRequest) { PendingClientLicenseRequests.Add(clientLicenseRequest); PendingLicensesChanged?.Invoke(null, null); }
public static void ConnectionManager_AtumClientLicenseRequest(PendingClientLicenseRequest clientLicenseRequest) { EventLogManager.WriteToEventLog("Received client license request", clientLicenseRequest.LicenseType.ToString() + ":" + clientLicenseRequest.IPAddress); //license available? if (AvailableLicenses != null) { foreach (var availableLicense in AvailableLicenses) { if (availableLicense != null) { if (clientLicenseRequest.LicenseType == PendingClientLicenseRequest.TypeOfClientLicenseRequest.Studio) { if (availableLicense.LicenseType == AvailableLicense.TypeOfLicense.StudioStandard) { //check if client computer has activity if (availableLicense.Activities.Count(s => s.Computername.ToLower() == clientLicenseRequest.Computername.ToLower()) == 0) { if (availableLicense.Amount - 1 >= availableLicense.Activities.Count) { //add activity availableLicense.Activities.Add(new AvailableLicenseActivity() { Computername = clientLicenseRequest.Computername.ToLower(), Username = clientLicenseRequest.Username.ToLower(), EndsOn = DateTime.Now.AddHours(2) }); EventLogManager.WriteToEventLog("Added license activity", availableLicense.LicenseType.ToString() + ":" + clientLicenseRequest.Computername); EventLogManager.WriteToEventLog("Amount of licenses", availableLicense.LicenseType.ToString() + ":" + availableLicense.Activities.Count + "/" + availableLicense.Amount); } else { EventLogManager.WriteToEventLog("Maximum amount of available licenses reached", availableLicense.LicenseType.ToString()); } } else { //update endson foreach (var activity in availableLicense.Activities) { if (activity.Computername == clientLicenseRequest.Computername.ToLower()) { activity.EndsOn = DateTime.Now.AddHours(2); EventLogManager.WriteToEventLog("Update license activity expiretime", availableLicense.LicenseType.ToString() + ":" + clientLicenseRequest.Computername); } } } var pendingClientLicenseResponse = new PendingClientLicenseResponse(); pendingClientLicenseResponse.LicenseType = AvailableLicense.TypeOfLicense.StudioStandard; pendingClientLicenseResponse.IPAddress = clientLicenseRequest.IPAddress; pendingClientLicenseResponse.Id = clientLicenseRequest.Id; SendClientResponse(pendingClientLicenseResponse); break; } } } } } }