private void btnGetCSQsRealtimeData_Click(object sender, EventArgs e)
        {
            Trace.TraceInformation("Enter.");

            Trace.TraceInformation("Enter.");

            if (ucWebServerSettings.txtWebServerIPAddress.Text == String.Empty)
            {
                MessageBox.Show("No valid IP Address provided for the Web Server.", Application.ProductName, MessageBoxButtons.OK);

                return;
            }

            if (ucWebServerSettings.txtContactDataCollectionPort.Text == String.Empty)
            {
                MessageBox.Show("No valid Contact Data Collection Port provided for the Web Server.", Application.ProductName, MessageBoxButtons.OK);

                return;
            }

            if (ucUCCXInformation.txtUCCXAdminUser.Text == String.Empty)
            {
                MessageBox.Show("No valid UCCX Admin User provided in UCCX Information.", Application.ProductName, MessageBoxButtons.OK);

                return;
            }

            if (ucUCCXInformation.txtUCCXAdminPassword.Text == String.Empty)
            {
                MessageBox.Show("No valid UCCX Admin Password provided in UCCX Information.", Application.ProductName, MessageBoxButtons.OK);

                return;
            }

            try
            {
                String sURL = "http://" + ucWebServerSettings.txtWebServerIPAddress.Text + ":" + ucWebServerSettings.txtContactDataCollectionPort.Text;

                com.workflowconcepts.utilities.AESSymmetricEncryption endDec = new com.workflowconcepts.utilities.AESSymmetricEncryption(Constants.ENCRYPTION_PASSWORD, Constants.ENCRYPTION_SALT);

                String sToken = System.Text.RegularExpressions.Regex.Replace(endDec.Encrypt(ucUCCXInformation.txtUCCXAdminUser.Text) + endDec.Encrypt(ucUCCXInformation.txtUCCXAdminPassword.Text), "[^A-Za-z0-9]", "");

                endDec = null;

                sURL = sURL + "/uccxrealtimedata?operation=getcsqdata&token=" + sToken;

                Trace.TraceInformation("sURL = " + sURL);

                System.Diagnostics.Process.Start(sURL);
            }
            catch (Exception ex)
            {
                Trace.TraceError("Exception:" + ex.Message + Environment.NewLine + "StackTrace:" + ex.StackTrace);
            }
        }
        public ApplicationTypes.ApplicationSettingsReturn CreateDefaultSettings()
        {
            Trace.TraceInformation("Enter.");

            try
            {
                _encDec = new com.workflowconcepts.utilities.AESSymmetricEncryption(Constants.ENCRYPTION_PASSWORD, Constants.ENCRYPTION_SALT);

                System.Xml.XmlWriterSettings _XMLSettings = new System.Xml.XmlWriterSettings();

                _XMLSettings.Indent = true;

                System.Xml.XmlWriter _XMLWriter = System.Xml.XmlWriter.Create(APPLICATIONSETTINGSFILEPATH + "\\" + Constants.APPLICATIONSETTINGSFILENAME, _XMLSettings);

                _XMLWriter.WriteStartDocument();

                _XMLWriter.WriteStartElement("ApplicationSettings");

                _XMLWriter.WriteStartElement("WebServer");
                _XMLWriter.WriteAttributeString("IP", Constants.IPAddress);
                _XMLWriter.WriteAttributeString("Port", Constants.WEBSERVER_PORT);
                _XMLWriter.WriteAttributeString("Prefix", Constants.WEBSERVER_PREFIX);
                _XMLWriter.WriteFullEndElement();

                _XMLWriter.WriteStartElement("EmailNotifications");
                _XMLWriter.WriteAttributeString("EmailFrom", _EmailFrom);
                _XMLWriter.WriteAttributeString("EmailTo", _EmailTo);
                _XMLWriter.WriteAttributeString("SMTPServer", _EmailSMTPServer);
                _XMLWriter.WriteAttributeString("SMTPPort", _EmailSMTPPort);
                _XMLWriter.WriteAttributeString("SMTPUser", _encDec.Encrypt(_EmailSMTPUserName));
                _XMLWriter.WriteAttributeString("SMTPPassword", _encDec.Encrypt(_EmailSMTPPassword));
                _XMLWriter.WriteAttributeString("OnFailure", _EmailOnFailure.ToString());
                _XMLWriter.WriteAttributeString("OnSuccess", _EmailOnSuccess.ToString());
                _XMLWriter.WriteFullEndElement();

                _XMLWriter.WriteStartElement("CallbackRecords");
                _XMLWriter.WriteAttributeString("MaximumNumberOfDays", Constants.MAXIMUM_NUMBER_OF_DAYS.ToString());
                _XMLWriter.WriteFullEndElement();

                _XMLWriter.WriteStartElement("BasicInsertionThrottling");
                _XMLWriter.WriteAttributeString("Enabled", _BasicInsertionThrottling_Enabled.ToString());
                _XMLWriter.WriteAttributeString("MaximumAtATime", _BasicInsertionThrottling_MaximumRecordsAtATime.ToString());
                _XMLWriter.WriteFullEndElement();

                _XMLWriter.WriteStartElement("API");
                _XMLWriter.WriteAttributeString("NumberOfHandlerThreads", Constants.NUMBER_OF_HANDLER_THREADS.ToString());
                _XMLWriter.WriteAttributeString("HandlerThreadsSleep", Constants.API_HANDLER_THREADS_SLEEP.ToString());
                _XMLWriter.WriteFullEndElement();

                _XMLWriter.WriteStartElement("Debug");
                _XMLWriter.WriteAttributeString("Enabled", "true");
                _XMLWriter.WriteAttributeString("Level", "verbose");
                _XMLWriter.WriteAttributeString("RetainUnit", "Files");
                _XMLWriter.WriteAttributeString("RetainValue", "100");
                _XMLWriter.WriteFullEndElement();

                _XMLWriter.WriteFullEndElement();

                _XMLWriter.WriteEndDocument();

                _XMLWriter.Flush();
                _XMLWriter.Close();
                _XMLWriter = null;

                _XMLSettings = null;

                _encDec = null;

                return(ApplicationTypes.ApplicationSettingsReturn.SUCCESS);
            }
            catch (Exception ex)
            {
                _encDec = null;

                Trace.TraceError("Exception:" + ex.Message + Environment.NewLine + "StackTrace:" + ex.StackTrace);

                return(ApplicationTypes.ApplicationSettingsReturn.ERROR);
            }
        }
        public ApplicationTypes.ApplicationSettingsReturn Load()
        {
            Trace.TraceInformation("Enter.");

            try
            {
                if (!System.IO.File.Exists(APPLICATIONSETTINGSFILEPATH + "\\" + Constants.APPLICATIONSETTINGSFILENAME))
                {
                    Trace.TraceWarning(APPLICATIONSETTINGSFILEPATH + "\\" + Constants.APPLICATIONSETTINGSFILENAME + " was not found.");
                    _LastOperationReturn = ApplicationTypes.ApplicationSettingsReturn.FILE_NOT_FOUND;
                    return(_LastOperationReturn);
                }
            }
            catch (Exception ex)
            {
                Trace.TraceError("Exception:" + ex.Message + Environment.NewLine + "StackTrace:" + ex.StackTrace);
                _LastOperationReturn = ApplicationTypes.ApplicationSettingsReturn.ERROR;
                return(_LastOperationReturn);
            }

            try
            {
                _encDec = new com.workflowconcepts.utilities.AESSymmetricEncryption(Constants.ENCRYPTION_PASSWORD, Constants.ENCRYPTION_SALT);

                System.Xml.XmlDocument   xmlDoc = null;
                System.Xml.XmlNodeReader reader = null;

                xmlDoc = new System.Xml.XmlDocument();

                xmlDoc.Load(APPLICATIONSETTINGSFILEPATH + "\\" + Constants.APPLICATIONSETTINGSFILENAME);

                reader = new System.Xml.XmlNodeReader(xmlDoc);

                while (reader.Read())
                {
                    switch (reader.NodeType)
                    {
                    case System.Xml.XmlNodeType.Element:

                        if (reader.Name.Equals("WebServer"))
                        {
                            _WebServerIP                 = reader.GetAttribute("IP");
                            _WebServerPort               = reader.GetAttribute("Port");
                            _WebServerPrefix             = reader.GetAttribute("Prefix");
                            _WebServerDataCollectionPort = reader.GetAttribute("DataCollectionPort");
                        }

                        if (reader.Name.Equals("EmailNotifications"))
                        {
                            _EmailFrom       = reader.GetAttribute("EmailFrom");
                            _EmailTo         = reader.GetAttribute("EmailTo");
                            _EmailSMTPServer = reader.GetAttribute("SMTPServer");
                            _EmailSMTPPort   = reader.GetAttribute("SMTPPort");

                            try
                            {
                                _EmailSMTPUserName = _encDec.Decrypt(reader.GetAttribute("SMTPUser"));
                            }
                            catch
                            {
                                _EmailSMTPUserName = string.Empty;
                            }

                            try
                            {
                                _EmailSMTPPassword = _encDec.Decrypt(reader.GetAttribute("SMTPPassword"));
                            }
                            catch
                            {
                                _EmailSMTPPassword = string.Empty;
                            }

                            try
                            {
                                _EmailOnFailure = Boolean.Parse(reader.GetAttribute("OnFailure"));
                            }
                            catch
                            {
                                _EmailOnFailure = true;
                            }

                            try
                            {
                                _EmailOnSuccess = Boolean.Parse(reader.GetAttribute("OnSuccess"));
                            }
                            catch
                            {
                                _EmailOnSuccess = false;
                            }
                        }

                        if (reader.Name.Equals("UCCX"))
                        {
                            _UCCXNode1IPAddress         = reader.GetAttribute("Node1IPAddress");
                            _UCCXNode2IPAddress         = reader.GetAttribute("Node2IPAddress");
                            _UCCXApplicationPort        = reader.GetAttribute("ApplicationPort");
                            _UCCXRealtimeDataPort       = reader.GetAttribute("RealtimeDataPort");
                            _UCCXAuthorizationPrefix    = reader.GetAttribute("AuthorizationPrefix");
                            _UCCXCallbackPrefix         = reader.GetAttribute("CallbackPrefix");
                            _UCCXNumberOfIVRPorts       = reader.GetAttribute("NumberOfIVRPorts");
                            _UCCXMaxIVRPortUsagePercent = reader.GetAttribute("MaxIVRPortUsagePercent");

                            try
                            {
                                int iUCCXMaxLicenseUsagePercent = int.Parse(_UCCXMaxIVRPortUsagePercent);

                                if (iUCCXMaxLicenseUsagePercent < 0)
                                {
                                    _UCCXMaxIVRPortUsagePercent = "0";
                                }

                                if (iUCCXMaxLicenseUsagePercent >= 100)
                                {
                                    _UCCXMaxIVRPortUsagePercent = "99";
                                }
                            }
                            catch
                            {
                                _UCCXMaxIVRPortUsagePercent = "0";
                            }

                            try
                            {
                                int iUccxNumberOfLicenses = int.Parse(_UCCXNumberOfIVRPorts);

                                if (iUccxNumberOfLicenses < 0)
                                {
                                    _UCCXNumberOfIVRPorts = "0";
                                }
                            }
                            catch
                            {
                                _UCCXNumberOfIVRPorts = "0";
                            }

                            try
                            {
                                _UCCXAdminUser          = _encDec.Decrypt(reader.GetAttribute("AdminUser"));
                                _EncryptedUCCXAdminUser = reader.GetAttribute("AdminUser");
                            }
                            catch
                            {
                                _UCCXAdminUser = String.Empty;
                            }

                            try
                            {
                                _UCCXAdminPassword          = _encDec.Decrypt(reader.GetAttribute("AdminPassword"));
                                _EncryptedUCCXAdminPassword = reader.GetAttribute("AdminPassword");
                            }
                            catch
                            {
                                _UCCXAdminPassword = String.Empty;
                            }
                        }

                        if (reader.Name.Equals("CallbackRecords"))
                        {
                            try
                            {
                                _MaximumNumberOfDays = int.Parse(reader.GetAttribute("MaximumNumberOfDays"));

                                if (_MaximumNumberOfDays < 0)
                                {
                                    _MaximumNumberOfDays = Constants.MAXIMUM_NUMBER_OF_DAYS;
                                }
                            }
                            catch
                            {
                                _MaximumNumberOfDays = Constants.MAXIMUM_NUMBER_OF_DAYS;
                            }

                            try
                            {
                                _MaximumNumberOfAttempts = int.Parse(reader.GetAttribute("MaximumNumberOfAttempts"));

                                if (_MaximumNumberOfAttempts <= 0)
                                {
                                    _MaximumNumberOfAttempts = Constants.MAXIMUM_NUMBER_OF_ATTEMPTS;
                                }
                            }
                            catch
                            {
                                _MaximumNumberOfAttempts = Constants.MAXIMUM_NUMBER_OF_ATTEMPTS;
                            }

                            try
                            {
                                _MinimumIntervalBetweenRetries = int.Parse(reader.GetAttribute("MinimumIntervalBetweenRetries"));

                                if (_MinimumIntervalBetweenRetries <= 0)
                                {
                                    _MinimumIntervalBetweenRetries = Constants.MINIMUM_INTERVAL_BETWEEN_RETRIES;
                                }
                            }
                            catch
                            {
                                _MinimumIntervalBetweenRetries = Constants.MINIMUM_INTERVAL_BETWEEN_RETRIES;
                            }
                        }

                        if (reader.Name.Equals("BasicInsertionThrottling"))
                        {
                            try
                            {
                                _BasicInsertionThrottling_Enabled = Boolean.Parse(reader.GetAttribute("Enabled"));
                            }
                            catch
                            {
                                _BasicInsertionThrottling_Enabled = false;
                            }

                            try
                            {
                                _BasicInsertionThrottling_MaximumRecordsAtATime = int.Parse(reader.GetAttribute("MaximumAtATime"));

                                if (_BasicInsertionThrottling_MaximumRecordsAtATime <= 0)
                                {
                                    _BasicInsertionThrottling_MaximumRecordsAtATime = Constants.BASIC_INSERTION_THROTTLING_MAXIMUM_RECORDS_AT_A_TIME;
                                }
                            }
                            catch
                            {
                                _BasicInsertionThrottling_MaximumRecordsAtATime = Constants.BASIC_INSERTION_THROTTLING_MAXIMUM_RECORDS_AT_A_TIME;
                            }
                        }

                        if (reader.Name.Equals("API"))
                        {
                            try
                            {
                                _NumberOfAPIThreads = int.Parse(reader.GetAttribute("NumberOfHandlerThreads"));

                                if (_NumberOfAPIThreads <= 0)
                                {
                                    _NumberOfAPIThreads = Constants.NUMBER_OF_HANDLER_THREADS;
                                }
                            }
                            catch
                            {
                                _NumberOfAPIThreads = Constants.NUMBER_OF_HANDLER_THREADS;
                            }

                            try
                            {
                                _APIHandlerThreadsSleep = int.Parse(reader.GetAttribute("HandlerThreadsSleep"));

                                if (_APIHandlerThreadsSleep <= 0)
                                {
                                    _APIHandlerThreadsSleep = Constants.API_HANDLER_THREADS_SLEEP;
                                }
                            }
                            catch
                            {
                                _APIHandlerThreadsSleep = Constants.API_HANDLER_THREADS_SLEEP;
                            }
                        }

                        if (reader.Name.Equals("Debug"))
                        {
                            try
                            {
                                _DebugEnabled = Boolean.Parse(reader.GetAttribute("Enabled"));
                            }
                            catch
                            {
                                _DebugEnabled = false;
                            }

                            _DebugLevel       = reader.GetAttribute("Level");
                            _DebugRetainUnit  = reader.GetAttribute("RetainUnit");
                            _DebugRetainValue = reader.GetAttribute("RetainValue");
                        }

                        break;
                    }
                }

                reader.Close();
                reader = null;

                xmlDoc = null;

                _encDec = null;

                _LastOperationReturn = ApplicationTypes.ApplicationSettingsReturn.SUCCESS;
                return(_LastOperationReturn);
            }
            catch (Exception ex)
            {
                _encDec = null;
                Trace.TraceError("Exception:" + ex.Message + Environment.NewLine + "StackTrace:" + ex.StackTrace);
                _LastOperationReturn = ApplicationTypes.ApplicationSettingsReturn.ERROR;
                return(_LastOperationReturn);
            }
        }
        public ApplicationTypes.ApplicationSettingsReturn Save()
        {
            Trace.TraceInformation("Enter.");

            try
            {
                _encDec = new com.workflowconcepts.utilities.AESSymmetricEncryption(Constants.ENCRYPTION_PASSWORD, Constants.ENCRYPTION_SALT);

                System.Xml.XmlWriterSettings _XMLSettings = new System.Xml.XmlWriterSettings();

                _XMLSettings.Indent = true;

                System.Xml.XmlWriter _XMLWriter = System.Xml.XmlWriter.Create(APPLICATIONSETTINGSFILEPATH + "\\" + Constants.APPLICATIONSETTINGSFILENAME, _XMLSettings);

                _XMLWriter.WriteStartDocument();

                _XMLWriter.WriteStartElement("ApplicationSettings");

                _XMLWriter.WriteStartElement("WebServer");
                _XMLWriter.WriteAttributeString("IP", WebServerIP);
                _XMLWriter.WriteAttributeString("Port", WebServerPort);
                _XMLWriter.WriteAttributeString("Prefix", WebServerPrefix);
                _XMLWriter.WriteAttributeString("DataCollectionPort", WebServerDataCollectionPort);
                _XMLWriter.WriteFullEndElement();

                _XMLWriter.WriteStartElement("EmailNotifications");
                _XMLWriter.WriteAttributeString("EmailFrom", _EmailFrom);
                _XMLWriter.WriteAttributeString("EmailTo", _EmailTo);
                _XMLWriter.WriteAttributeString("SMTPServer", _EmailSMTPServer);
                _XMLWriter.WriteAttributeString("SMTPPort", _EmailSMTPPort);
                _XMLWriter.WriteAttributeString("SMTPUser", _encDec.Encrypt(_EmailSMTPUserName));
                _XMLWriter.WriteAttributeString("SMTPPassword", _encDec.Encrypt(_EmailSMTPPassword));
                _XMLWriter.WriteAttributeString("OnFailure", _EmailOnFailure.ToString());
                _XMLWriter.WriteAttributeString("OnSuccess", _EmailOnSuccess.ToString());
                _XMLWriter.WriteFullEndElement();

                _XMLWriter.WriteStartElement("UCCX");
                _XMLWriter.WriteAttributeString("Node1IPAddress", _UCCXNode1IPAddress);
                _XMLWriter.WriteAttributeString("Node2IPAddress", _UCCXNode2IPAddress);
                _XMLWriter.WriteAttributeString("ApplicationPort", _UCCXApplicationPort);
                _XMLWriter.WriteAttributeString("RealtimeDataPort", _UCCXRealtimeDataPort);
                _XMLWriter.WriteAttributeString("AuthorizationPrefix", _UCCXAuthorizationPrefix);
                _XMLWriter.WriteAttributeString("CallbackPrefix", _UCCXCallbackPrefix);
                _XMLWriter.WriteAttributeString("AdminUser", _encDec.Encrypt(_UCCXAdminUser));
                _XMLWriter.WriteAttributeString("AdminPassword", _encDec.Encrypt(_UCCXAdminPassword));
                _XMLWriter.WriteAttributeString("NumberOfIVRPorts", _UCCXNumberOfIVRPorts);
                _XMLWriter.WriteAttributeString("MaxIVRPortUsagePercent", _UCCXMaxIVRPortUsagePercent);
                _XMLWriter.WriteFullEndElement();

                _EncryptedUCCXAdminUser     = _encDec.Encrypt(_UCCXAdminUser);
                _EncryptedUCCXAdminPassword = _encDec.Encrypt(_UCCXAdminPassword);

                _XMLWriter.WriteStartElement("CallbackRecords");
                _XMLWriter.WriteAttributeString("MaximumNumberOfDays", _MaximumNumberOfDays.ToString());
                _XMLWriter.WriteAttributeString("MaximumNumberOfAttempts", _MaximumNumberOfAttempts.ToString());
                _XMLWriter.WriteAttributeString("MinimumIntervalBetweenRetries", _MinimumIntervalBetweenRetries.ToString());
                _XMLWriter.WriteFullEndElement();

                _XMLWriter.WriteStartElement("BasicInsertionThrottling");
                _XMLWriter.WriteAttributeString("Enabled", _BasicInsertionThrottling_Enabled.ToString());
                _XMLWriter.WriteAttributeString("MaximumAtATime", _BasicInsertionThrottling_MaximumRecordsAtATime.ToString());
                _XMLWriter.WriteFullEndElement();

                _XMLWriter.WriteStartElement("API");
                _XMLWriter.WriteAttributeString("NumberOfHandlerThreads", _NumberOfAPIThreads.ToString());
                _XMLWriter.WriteAttributeString("HandlerThreadsSleep", _APIHandlerThreadsSleep.ToString());
                _XMLWriter.WriteFullEndElement();

                _XMLWriter.WriteStartElement("Debug");
                _XMLWriter.WriteAttributeString("Enabled", _DebugEnabled.ToString());
                _XMLWriter.WriteAttributeString("Level", _DebugLevel);
                _XMLWriter.WriteAttributeString("RetainUnit", _DebugRetainUnit);
                _XMLWriter.WriteAttributeString("RetainValue", _DebugRetainValue);
                _XMLWriter.WriteFullEndElement();

                _XMLWriter.WriteFullEndElement();

                _XMLWriter.WriteEndDocument();

                _XMLWriter.Flush();
                _XMLWriter.Close();
                _XMLWriter = null;

                _XMLSettings = null;

                _encDec = null;

                return(ApplicationTypes.ApplicationSettingsReturn.SUCCESS);
            }
            catch (Exception ex)
            {
                _encDec = null;

                Trace.TraceError("Exception:" + ex.Message + Environment.NewLine + "StackTrace:" + ex.StackTrace);

                return(ApplicationTypes.ApplicationSettingsReturn.ERROR);
            }
        }
Beispiel #5
0
        public bool GetInformation()
        {
            try
            {
                String sURL = String.Empty;

                com.workflowconcepts.utilities.AESSymmetricEncryption endDec = new com.workflowconcepts.utilities.AESSymmetricEncryption(Constants.ENCRYPTION_PASSWORD, Constants.ENCRYPTION_SALT);

                String sToken = System.Text.RegularExpressions.Regex.Replace(endDec.Encrypt(_ApplicationSettings.UCCXAdminUser) + endDec.Encrypt(_ApplicationSettings.UCCXAdminPassword), "[^A-Za-z0-9]", "");

                endDec = null;

                sURL = "http://" + _ApplicationSettings.WebServerIP + ":" + _ApplicationSettings.WebServerDataCollectionPort + "/" + "uccxrealtimedata" + "?operation=getagentdata&token=" + sToken;

                //Trace.TraceInformation("sURL = " + sURL);

                System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(sURL);

                System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();

                //Trace.TraceInformation("Content type is {0} and length is {1}", response.ContentType, response.ContentLength);

                System.IO.Stream stream = response.GetResponseStream();

                // Pipes the stream to a higher level stream reader with the required encoding format.
                System.IO.StreamReader streamReader = new System.IO.StreamReader(stream, Encoding.UTF8);

                String sResponse = streamReader.ReadToEnd();

                streamReader.Close();
                streamReader.Dispose();
                streamReader = null;

                stream.Close();
                stream.Dispose();
                stream = null;

                response.Close();
                response = null;
                request  = null;

                xmlDoc = new XmlDocument();

                xmlDoc.LoadXml(sResponse);

                System.Security.Cryptography.HashAlgorithm algorithm = System.Security.Cryptography.MD5.Create();  //or use SHA256.Create();
                byte[] bHash = algorithm.ComputeHash(Encoding.UTF8.GetBytes(sResponse));

                StringBuilder sb = new StringBuilder();

                foreach (byte b in bHash)
                {
                    sb.Append(b.ToString("X2"));
                }

                _Hash = sb.ToString();

                sb = null;

                return(true);
            }
            catch (Exception ex)
            {
                Trace.TraceError("Exception:" + ex.Message + Environment.NewLine + "StackTrace:" + ex.StackTrace);
                _Hash = String.Empty;
                return(false);
            }
        }