Example #1
0
        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 + ")");
                }
            }
        }
Example #2
0
 internal static void AddPendingLicenseRequest(PendingClientLicenseRequest clientLicenseRequest)
 {
     PendingClientLicenseRequests.Add(clientLicenseRequest);
     PendingLicensesChanged?.Invoke(null, null);
 }
Example #3
0
        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;
                            }
                        }
                    }
                }
            }
        }