private void btnErrors_Click(object sender, EventArgs e) { frmErrorRates objFrmErrorRates = new frmErrorRates(m_objSimModel.GetErrorRates()); if (objFrmErrorRates.ShowDialog() == DialogResult.OK) { m_objSimModel.SetErrorRates(objFrmErrorRates.ErrorRates); SaveSettings(); } }
private void frmMain_Load(object sender, EventArgs e) { var objSettings = Settings.Default; // force save settings right away objSettings.LastReference = objSettings.LastReference; objSettings.Save(); m_Logger = new Logger(objSettings.ViewLogFile); m_Logger.WriteLine("Startup SMPP Simulator"); m_objSimWorker = new SimWorker(); m_objSimModel = m_objSimWorker.SimModel; m_objSmsConstants = new AxSms.Constants(); // IP Version combo box var dctIpVersion = new Dictionary <string, int>(); dctIpVersion.Add("IPv6/IPv4", m_objSmsConstants.SMPP_IPVERSION_BOTH); dctIpVersion.Add("IPv6", m_objSmsConstants.SMPP_IPVERSION_6); dctIpVersion.Add("IPv4", m_objSmsConstants.SMPP_IPVERSION_4); cbxIpVersion.DisplayMember = "Key"; cbxIpVersion.ValueMember = "Value"; cbxIpVersion.DataSource = new BindingSource(dctIpVersion, null); // Make sure to update all the SESSION_ constants when changing stuff here !!!! lvSessions.Columns.Add("Client IP", (int)(lvSessions.Width * .25), HorizontalAlignment.Left); lvSessions.Columns.Add("Client Port", (int)(lvSessions.Width * .25), HorizontalAlignment.Left); lvSessions.Columns.Add("SystemID", (int)(lvSessions.Width * .24), HorizontalAlignment.Left); lvSessions.Columns.Add("Connection State", (int)(lvSessions.Width * .25), HorizontalAlignment.Left); lvSessions.AutoResizeColumn(3, ColumnHeaderAutoResizeStyle.HeaderSize); // Make sure to update all the MESSAGE_ constants when changing stuff here !!!! lvMessages.Columns.Add("Dir.", (int)(lvMessages.Width * .1), HorizontalAlignment.Left); lvMessages.Columns.Add("SystemID", (int)(lvMessages.Width * .20), HorizontalAlignment.Left); lvMessages.Columns.Add("ToAddress", (int)(lvMessages.Width * .15), HorizontalAlignment.Left); lvMessages.Columns.Add("Reference", (int)(lvMessages.Width * .15), HorizontalAlignment.Left); lvMessages.Columns.Add("State", (int)(lvMessages.Width * .15), HorizontalAlignment.Left); lvMessages.Columns.Add("Body", -2, HorizontalAlignment.Left); // Make sure to update all the AUTOMESSAGE_ constants when changing stuff here !!!! lvAutoMessage.Columns.Add("FromAddress", (int)(lvAutoMessage.Width * .20), HorizontalAlignment.Left); lvAutoMessage.Columns.Add("ToAddress", (int)(lvAutoMessage.Width * .20), HorizontalAlignment.Left); lvAutoMessage.Columns.Add("Body", (int)(lvAutoMessage.Width * .59), HorizontalAlignment.Left); // Set the hyperlinks in the GUI llblAxLink.Text = "Try other SMS software products by Auron Software."; llblAxLink.Links.Add(llblAxLink.Text.IndexOf("SMS software products"), "SMS software products".Length, "https://www.auronsoftware.com/products/"); llblAxLink.LinkClicked += new LinkLabelLinkClickedEventHandler(llblAxLink_LinkClicked); llblFooterText.Text = "Auron SMPP Simulator is freeware. It uses Auron SMS Component.\r\n"; llblFooterText.Text += "For more information on Auron SMS products, click here."; llblFooterText.Links.Add(llblFooterText.Text.IndexOf("click here"), "click here".Length, "https://www.auronsoftware.com/products/"); llblFooterText.LinkClicked += new LinkLabelLinkClickedEventHandler(llblAxLink_LinkClicked); // Initialize model m_objSimModel.LastReference = objSettings.LastReference + SimConstants.ADDREFERENCES_ONAPPSTART; m_objSimModel.Port = objSettings.Port; m_objSimModel.IpVersion = objSettings.IpVersion; m_objSimModel.IsAuthRequired = objSettings.AuthRequired; m_objSimModel.SystemId = objSettings.SystemId; m_objSimModel.Password = objSettings.Password; m_objSimModel.IsPduLogEnabled = objSettings.PduLogEnabled; m_objSimModel.IsServerLogEnabled = objSettings.ServerLogEnabled; m_objSimModel.IsSessionLogEnabled = objSettings.SessionLogEnabled; m_objSimModel.ServerLog = objSettings.ServerLog; m_objSimModel.SessionLog = objSettings.SessionLog; m_objSimModel.GeneratePerMinute = objSettings.GeneratePerMinute; m_objSimModel.RandomOrder = objSettings.RandomOrder; m_objSimModel.Echo = objSettings.Echo; m_objSimModel.PduTimeout = objSettings.PduTimeout; m_objSimModel.EnquireInterval = objSettings.EnquireInterval; m_objSimModel.UseGsmEncoding = objSettings.UseGsmEncoding; m_objSimModel.MultipartMode = objSettings.MultipartMode; m_objSimModel.DeliverMode = objSettings.DeliverMode; m_objSimModel.CertificateStore = objSettings.CertificateStore; m_nKeepMaxMessages = objSettings.KeepMessages; m_strAutoMessagesFile = objSettings.AutoMessageFile; // pre-load auto messages if (LoadAutoMessages(m_strAutoMessagesFile) != 0) { SimMessage objMessage = null; AddToAutoMessage(new SimMessage("+123123123", SimConstants.DEFAULT_FROMADDRESS, "Hello, World!")); AddToAutoMessage(objMessage = new SimMessage("+321321321", SimConstants.DEFAULT_FROMADDRESS, "مرحبا، العالم")); objMessage.DataCoding = m_objSmsConstants.DATACODING_UNICODE; AddToAutoMessage(objMessage = new SimMessage("+231231231", SimConstants.DEFAULT_FROMADDRESS, "नमस्ते दुनिया")); objMessage.DataCoding = m_objSmsConstants.DATACODING_DEFAULT; objMessage.LanguageShift = m_objSmsConstants.LANGUAGE_SINGLESHIFT_HINDI; AddToAutoMessage(objMessage = new SimMessage("+123123123", SimConstants.DEFAULT_FROMADDRESS, "48656c6c6f2c20576f726c6421")); objMessage.BodyFormat = m_objSmsConstants.BODYFORMAT_HEX; } PushAutoMessages(); // Push error rates to model. SimErrorRates objErrorRates = new SimErrorRates(); string strMessageRates = objSettings.MessageErrorRates; string strDeliveryRates = objSettings.DeliveryErrorRates; string[] aMessageRates = strMessageRates.Split(';'); try { foreach (string strMessageRate in aMessageRates) { SimMessageErrorRate objErrr = new SimMessageErrorRate(); string[] aMessageRate = strMessageRate.Split(','); objErrr.StatusCode = int.Parse(aMessageRate[0]); objErrr.Occurance = int.Parse(aMessageRate[1]); objErrorRates.MessageErrorRates.Add(objErrr); } } catch (Exception x) { m_Logger.WriteLine("Error while parsing message rates: {0}", x.ToString()); } string[] aDeliveryRates = strDeliveryRates.Split(';'); try { foreach (string strDeliveryRate in aDeliveryRates) { SimDeliveryErrorRate objErrr = new SimDeliveryErrorRate(); string[] aDeliveryRate = strDeliveryRate.Split(','); objErrr.Code = int.Parse(aDeliveryRate[0]); objErrr.Text = aDeliveryRate[1]; objErrr.Occurance = int.Parse(aDeliveryRate[2]); objErrorRates.DeliveryErrorRates.Add(objErrr); } } catch (Exception x) { m_Logger.WriteLine("Error while parsing delivery rates: {0}", x.ToString()); } m_objSimModel.SetErrorRates(objErrorRates); // Set other control values txtServerLog.Text = m_objSimModel.ServerLog; txtSessionLog.Text = m_objSimModel.SessionLog; cbEnableServerLog.Checked = m_objSimModel.IsServerLogEnabled; cbEnableSessionLog.Checked = m_objSimModel.IsSessionLogEnabled; cbEnablePduLog.Checked = m_objSimModel.IsPduLogEnabled; cbAuthentication.Checked = m_objSimModel.IsAuthRequired; txtSystemId.Text = m_objSimModel.SystemId; txtPassword.Text = m_objSimModel.Password; txtMaxSendPerMinute.Text = m_objSimModel.GeneratePerMinute.ToString(); cbRandom.Checked = m_objSimModel.RandomOrder; cbEcho.Checked = m_objSimModel.Echo; ReloadCertificates(); objSettings.Save(); UpdateControls(); }