public void Execute(IJobExecutionContext context) { try { Log.Debug(""); Log.Info("Executing password reset job"); IEmailSender _emailSender = new DefaultEmailSender(); var UserService = ServiceProvider.GetUserServices(); ApplicationSettingsServices generalSettingsService = ServiceProvider.GetApplicationSettingsServices(); //Send reminders var users = UserService.FindAll(true) .Where(user => (user.LastUpdated == null || user.LastUpdated <= DateTime.Now.AddDays(-20)) && (!user.IsExpired.HasValue || !user.IsExpired.Value)); foreach (var user in users) { try { ISms sms = new EstoreSms(); sms.UserName = Convert.ToString(generalSettingsService.SelectParameterValue(OGeneralSettings.SMS_GATEWAY_USERNAME)); sms.Password = Convert.ToString(generalSettingsService.SelectParameterValue(OGeneralSettings.SMS_GATEWAY_PASSWORD)); var daysRemaining = 30;// DateTime.Now - user.LastUpdated; sms.Message = @"Hi " + user.Name + @". \nPlease ensure to update you password on OpenCBS within the next " + daysRemaining; sms.AddRecipient(user.Phone); sms.MessageFrom = "OpenCBS"; string response = sms.SendSms(); Log.Info(response); } catch (Exception exc) { Log.Error(string.Format("Error sending sms: {0}", exc.Message), exc); } } //Expire user accounts users = UserService.FindAll(false).Where(user => user.LastUpdated == null || user.LastUpdated <= DateTime.Now.AddDays(-30)); foreach (var user in users) { user.IsExpired = true; user.TimedOut = true; UserService.UpdateUserAccess(user); } } catch (Exception exc) { Log.Error(string.Format("Error resetting user passwords: {0}", exc.Message), exc); } finally { } }
public void Execute(IJobExecutionContext context) { try { Log.Debug(""); Log.Info("Executing queued message send job"); IEmailSender _emailSender = new DefaultEmailSender(); QueuedEmailServices _queuedEmailService = ServiceProvider.GetQueuedEmailServices(); QueuedSMSServices _queuedSMSService = ServiceProvider.GetQueuedSMSServices(); ApplicationSettingsServices generalSettingsService = ServiceProvider.GetApplicationSettingsServices(); var sendTriesStart = 0; var sendTriesEnd = OpenCBSConstants.MessagingMaxSentTries; int enableSmsMsg = Convert.ToInt32(generalSettingsService.SelectParameterValue(OGeneralSettings.ENABLE_SMS_MESSAGING)); Log.Debug("Send SMS status: " + enableSmsMsg); if (enableSmsMsg == 1) { var queuedsms = _queuedSMSService.SearchSMSs(null, null, null, null, true, sendTriesStart, sendTriesEnd, false, 0, 10000); Log.Debug(""); Log.Debug("-------------------------------------"); Log.Info("Sending SMS"); Log.Debug("Queued sms count: " + queuedsms.Count); foreach (var qe in queuedsms) { try { ISms sms = new EstoreSms(); sms.UserName = Convert.ToString(generalSettingsService.SelectParameterValue(OGeneralSettings.SMS_GATEWAY_USERNAME)); sms.Password = Convert.ToString(generalSettingsService.SelectParameterValue(OGeneralSettings.SMS_GATEWAY_PASSWORD)); sms.Message = qe.Message; sms.AddRecipient(qe.Recipient); sms.MessageFrom = qe.From; qe.Response = sms.SendSms(); if (qe.Response.ToLower().Contains("ok")) { qe.SentOnUtc = DateTime.UtcNow; } Log.Info(qe.Response); } catch (Exception exc) { Log.Error(string.Format("Error sending sms: {0}", exc.Message), exc); } finally { qe.SentTries = qe.SentTries + 1; _queuedSMSService.Update(qe); } } } var queuedEmails = _queuedEmailService.SearchEmails(null, null, null, null, true, sendTriesStart, sendTriesEnd, false, 0, 10000); Log.Debug(""); Log.Debug(""); Log.Debug("-------------------------------------"); Log.Info("Sending Emails"); Log.Debug("Queued email count: " + queuedEmails.Count); foreach (var qe in queuedEmails) { var bcc = String.IsNullOrWhiteSpace(qe.Bcc) ? null : qe.Bcc.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); var cc = String.IsNullOrWhiteSpace(qe.CC) ? null : qe.CC.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); try { var smtpContext = new SmtpContext(qe.EmailAccount); var msg = new EmailMessage( new EmailAddress(qe.To, qe.ToName), qe.Subject, qe.Body, new EmailAddress(qe.From, qe.FromName)); if (qe.ReplyTo.HasValue()) { msg.ReplyTo.Add(new EmailAddress(qe.ReplyTo, qe.ReplyToName)); } if (cc != null) { msg.Cc.AddRange(cc.Where(x => x.HasValue()).Select(x => new EmailAddress(x))); } if (bcc != null) { msg.Bcc.AddRange(bcc.Where(x => x.HasValue()).Select(x => new EmailAddress(x))); } _emailSender.SendEmail(smtpContext, msg); qe.SentOnUtc = DateTime.UtcNow; } catch (Exception exc) { Log.Error(string.Format("Error sending e-mail: {0}", exc.Message), exc); } finally { qe.SentTries = qe.SentTries + 1; _queuedEmailService.Update(qe); } } Log.Info("Queued message send completed"); } catch (Exception exc) { Log.Error(exc); } }