コード例 #1
0
 public MailClientTimer(AlarmMail alarmMail)
 {
     this.alarmMail = alarmMail;
     timer          = new Timer();
     timer.Interval = alarmMail.Delaytime * 1000;
     timer.Elapsed += Timer_Elapsed;
 }
コード例 #2
0
        public async void SendMailAsync(AlarmMail _alarm)
        {
            if (Client == null)
            {
                Client = new SmtpClient(MailServerName);
            }

            try
            {
                List <User> recipients = GetMailRecipients(_alarm);
                if (recipients.Count > 0)
                {
                    var toWho = from recipient in recipients select recipient.Email;

                    await SendMailAsync(toWho.ToList(), _alarm.EmailText, _alarm.EMailSubject);

                    Log.Instance.Info("{0}: '{1}' adlı alarm '{2}' nolu e-posta grubundaki kullanıcalara iletildi.", this.GetType().Name, _alarm.Name, _alarm.MailGroupName);
                }
                else
                {
                    Log.Instance.Warn("{0}: Veritabanında alıcı bulunamadığı için {1} adlı alarm iletilemedi.", this.GetType().Name, _alarm.Name);
                }
            }
            catch (Exception ex)
            {
                Log.Instance.Error("{0}: {1} adlı alarm ilgili kullanıcalara iletilemedi => {2}", this.GetType().Name, _alarm.Name, ex.Message);
                throw;
            }
        }
コード例 #3
0
        public void SendMail(AlarmMail _alarm)

        {
            client = new MailKit.Net.Smtp.SmtpClient();
            List <User> recipients = GetMailRecipients(_alarm);

            if (recipients.Count > 0)
            {
                var message = new MimeMessage();
                foreach (User recipient in recipients)
                {
                    message.To.Add(new MailboxAddress(recipient.Name + " " + recipient.Surname, recipient.Email));
                }
                message.From.Add(new MailboxAddress(Constants.MessageBoxHeader, UserName));
                message.Subject = _alarm.EMailSubject;
                message.Body    = new TextPart("plain")
                {
                    Text = @_alarm.EmailText
                };

                if (ConnectToMailServer())
                {
                    client.Send(message);
                    Log.Instance.Info("{0}: {1} adlı alarm {2} grubundaki tüm kullanıcılara gönderildi.", this.GetType().Name, _alarm.Name, _alarm.MailGroupName);
                    client.Disconnect(true);
                }
                else
                {
                    Log.Instance.Error("{0} isimli alarm mail server'a bağlanılamadı için gönderilemedi", _alarm.Name);
                }
            }
        }
コード例 #4
0
 public frm_AddNewOrUpdateMailAlarm(AlarmMail _alarmMail)
 {
     InitializeComponent();
     formType  = FormType.UpdateExistingSignal;
     alarmMail = _alarmMail;
     cursorPos = 0;
     txt_AlarmLogic.SelectionLength = 1;
 }
コード例 #5
0
 private AlarmMail GetFormValues(AlarmMail am)
 {
     am.Name         = txt_AlarmName.Text;
     am.EMailSubject = txt_EMailSubject.Text.Replace("'", "$");
     am.EmailText    = txt_EmailMessage.Text.Replace("'", "$");
     am.LogicText    = txt_AlarmLogic.Text.Replace("'", "$");;
     am.MailGroupID  = ((MailGroup)cb_MailGroups.SelectedItem).ID;
     am.Delaytime    = uint.Parse(txt_Second.Text);
     return(am);
 }
コード例 #6
0
#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member 'frm_AddNewOrUpdateMailAlarm.UpdateExistingAlarmButtonClicked'

        private void OnAddNewAlarmButtonClicked(AlarmMail am)
        {
            MailAlarmEventArgs args = new MailAlarmEventArgs();

            args.alarmMail = am;

            if (AddNewAlarmButtonClicked != null)
            {
                AddNewAlarmButtonClicked(this, args);
            }
        }
コード例 #7
0
        private void OnUpdateExistingAlarmButtonClicked(AlarmMail am)
        {
            MailAlarmEventArgs args = new MailAlarmEventArgs();

            args.alarmMail = am;

            if (UpdateExistingAlarmButtonClicked != null)
            {
                UpdateExistingAlarmButtonClicked(this, args);
            }
        }
コード例 #8
0
        private void dgv_MailAlarms_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            AlarmMail am = new AlarmMail();

            am.ID            = uint.Parse(dgv_MailAlarms.SelectedRows[0].Cells["id"].Value.ToString());
            am.Name          = dgv_MailAlarms.SelectedRows[0].Cells["Alarm Adı"].Value.ToString();
            am.EMailSubject  = dgv_MailAlarms.SelectedRows[0].Cells["E-Mail Konu"].Value.ToString();
            am.EmailText     = dgv_MailAlarms.SelectedRows[0].Cells["Mesaj"].Value.ToString();
            am.LogicText     = dgv_MailAlarms.SelectedRows[0].Cells["Alarm Lojiği"].Value.ToString();
            am.MailGroupName = dgv_MailAlarms.SelectedRows[0].Cells["E-Posta Grubu"].Value.ToString();

            frm_addNewOrUpdateMailAlarm = new frm_AddNewOrUpdateMailAlarm(am);
            frm_addNewOrUpdateMailAlarm.UpdateExistingAlarmButtonClicked += tab_EmailSettings_UpdateExistingAlarmButtonClicked;
            frm_addNewOrUpdateMailAlarm.ShowDialog();
        }
コード例 #9
0
        private void btn_AddNewOrUpdateAlarm_Click(object sender, EventArgs e)
        {
            ExprValidator validator = new ExpressionValidatorLib.ExprValidator();
            uint          second;

            try
            {
                TrimAllInputFields();


                if (txt_AlarmName.Text == string.Empty)
                {
                    MessageBox.Show("Alarm adı boş bırakılamaz.", Constants.MessageBoxHeader, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    txt_AlarmName.Focus();
                    return;
                }
                else if (txt_AlarmLogic.Text == string.Empty)
                {
                    MessageBox.Show("Alarm için bir koşul yazınız.", Constants.MessageBoxHeader, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    txt_AlarmLogic.Focus();
                    return;
                }
                else if (txt_EMailSubject.Text == string.Empty)
                {
                    MessageBox.Show("E-Posta başlığı boş bırakılamaz.", Constants.MessageBoxHeader, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    txt_EMailSubject.Focus();
                    return;
                }
                else if (txt_EmailMessage.Text == string.Empty)
                {
                    MessageBox.Show("E-Posta mesajı boş bırakılamaz.", Constants.MessageBoxHeader, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    txt_EmailMessage.Focus();
                    return;
                }
                else if (txt_Second.Text == string.Empty)
                {
                    MessageBox.Show("Alarm gecikme boş bırakılamaz.\nAlarm'ın çalışmasında gecikme süresi olmasını istemiyorsanız 0 giriniz.", Constants.MessageBoxHeader, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    txt_EmailMessage.Focus();
                    return;
                }
                else if (!(uint.TryParse(txt_Second.Text, out second)))
                {
                    MessageBox.Show("Alarm gecikme süresi için sadece sayı giriniz.", Constants.MessageBoxHeader, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    txt_EmailMessage.Focus();
                    return;
                }
                else if (cb_MailGroups.SelectedItem == null)
                {
                    MessageBox.Show("E-Posta grubu seçiniz.", Constants.MessageBoxHeader, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    cb_MailGroups.Focus();
                    bool denme = validator.Validate(txt_AlarmLogic.Text);
                    return;
                }
                else if (!validator.Validate(txt_AlarmLogic.Text))
                {
                    MessageBox.Show(string.Format("Alarm lojiğinde hata! \nAlarm lojiğini kontrol ediniz. \n{0}", validator.Message()), Constants.MessageBoxHeader, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    txt_AlarmLogic.Focus();
                    return;
                }
                else
                {
                    bool isVariableNamesValidated = ValidateVariableNamesAtLogic();

                    if (isVariableNamesValidated)
                    {
                        if (formType == FormType.AddNewSignal)
                        {
                            AlarmMail am = new AlarmMail();
                            GetFormValues(am);
                            OnAddNewAlarmButtonClicked(am);
                        }
                        else if (formType == FormType.UpdateExistingSignal)
                        {
                            GetFormValues(alarmMail);
                            OnUpdateExistingAlarmButtonClicked(alarmMail);
                        }
                        Close_frm_selectVariable();
                    }
                    else
                    {
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #10
0
 private List <User> GetMailRecipients(AlarmMail _alarm)
 {
     return(DBHelper_MailClient.GetMailRecipients(_alarm.MailGroupID));
 }