public MessageDeliveryStatus SendMessageInstantly(SMS messageItem) { int status; Repository.MessagingRepository repository = new Repository.MessagingRepository(); Application application = repository.GetApplication(messageItem.ApplicationName); if (application != null) { SMSQueueItem smsQueueItem = new SMSQueueItem(); smsQueueItem.ApplicationID = application.Id; var smsConfiguration = repository.GetSMSConfiguration(application.Id); if (smsConfiguration != null) { TwilioClient.Init(smsConfiguration.AccountSid, smsConfiguration.AuthToken); var message = MessageResource.Create( to: new PhoneNumber(messageItem.ToNumber), from: new PhoneNumber(messageItem.FromNumber), body: messageItem.Message ); smsQueueItem.DeliveryResponse = JsonConvert.SerializeObject(messageItem); if (message.Status == MessageResource.StatusEnum.Failed || message.Status == MessageResource.StatusEnum.Undelivered) { smsQueueItem.StatusID = (int)MessageDeliveryStatus.Failed; status = (int)MessageDeliveryStatus.Failed; } else { smsQueueItem.StatusID = (int)MessageDeliveryStatus.Delivered; smsQueueItem.DeliveryDate = message.DateSent.HasValue ? message.DateSent : message.DateUpdated; status = (int)MessageDeliveryStatus.Delivered; } smsQueueItem.CreatedDate = DateTime.Now; smsQueueItem.SMSObject = Utility.ObjectToByteArray(messageItem.Message); smsQueueItem.NumberOfAttempts = -1; repository.AddSMSToQueue(smsQueueItem); } else { status = (int)MessageDeliveryStatus.Failed; } } else { status = (int)MessageDeliveryStatus.Failed; } return((MessageDeliveryStatus)status); }
public void AddMessageToQueue(SMS messageItem) { Repository.MessagingRepository repository = new Repository.MessagingRepository(); Application application = repository.GetApplication(messageItem.ApplicationName); if (application != null) { SMSQueueItem smsQueueItem = new SMSQueueItem(); smsQueueItem.ApplicationID = application.Id; smsQueueItem.StatusID = (int)MessageDeliveryStatus.Scheduled; smsQueueItem.CreatedDate = DateTime.Now; smsQueueItem.SMSObject = Utility.ObjectToByteArray(messageItem.Message); repository.AddSMSToQueue(smsQueueItem); } }
public MessageDeliveryStatus SendMessage(SMSQueueItem smsqueueitem) { int status; Repository.MessagingRepository repository = new Repository.MessagingRepository(); var smsConfiguration = repository.GetSMSConfiguration(smsqueueitem.ApplicationID); if (smsConfiguration != null) { TwilioClient.Init(smsConfiguration.AccountSid, smsConfiguration.AuthToken); SMS sms = (SMS)Utility.ByteArrayToObject(smsqueueitem.SMSObject); var message = MessageResource.Create( to: new PhoneNumber(sms.ToNumber), from: new PhoneNumber(sms.FromNumber), body: sms.Message ); smsqueueitem.DeliveryResponse = JsonConvert.SerializeObject(message); smsqueueitem.NumberOfAttempts += 1; if (message.Status == MessageResource.StatusEnum.Failed || message.Status == MessageResource.StatusEnum.Undelivered) { status = (int)MessageDeliveryStatus.Failed; if (smsConfiguration.MaxNumberOfRetry >= smsqueueitem.NumberOfAttempts) { smsqueueitem.StatusID = (int)MessageDeliveryStatus.Failed; } } else { status = (int)MessageDeliveryStatus.Delivered; smsqueueitem.StatusID = (int)MessageDeliveryStatus.Delivered; smsqueueitem.DeliveryDate = message.DateSent.HasValue ? message.DateSent : message.DateUpdated; } repository.UpdateSMSToQueue(smsqueueitem); } else { status = (int)MessageDeliveryStatus.Failed; } return((MessageDeliveryStatus)status); }
public void AddMessageToQueue(EmailMessage messageitem) { Repository.MessagingRepository repository = new Repository.MessagingRepository(); Application application = repository.GetApplication(messageitem.ApplicationName); if (application != null) { EMailQueueItem emailQueueItem = new EMailQueueItem(); emailQueueItem.ApplicationID = application.Id; emailQueueItem.StatusID = (int)MessageDeliveryStatus.Scheduled; emailQueueItem.CreatedDate = DateTime.Now; emailQueueItem.EmailObject = Utility.ObjectToByteArray(messageitem); repository.AddEmailToQueue(emailQueueItem); } }
public IEnumerable <SMSQueueItem> GetPendingMessages() { Repository.MessagingRepository repository = new Repository.MessagingRepository(); return(repository.GetPendingSMSFromQueue().ToList()); }
public MessageDeliveryStatus SendMessageInstantly(EmailMessage messageitem) { int status; Repository.MessagingRepository repository = new Repository.MessagingRepository(); Application application = repository.GetApplication(messageitem.ApplicationName); if (application != null) { var emailConfiguration = repository.GetEmailConfiguration(application.Id); if (emailConfiguration != null) { using (var mail = new System.Net.Mail.MailMessage( messageitem.FromEmail, messageitem.ToEmail, messageitem.EMailSubject, messageitem.EMailBody)) { if (messageitem.CcEmail != null || messageitem.CcEmail != string.Empty) { mail.CC.Add(messageitem.CcEmail); } if (messageitem.BccEmail != null || messageitem.BccEmail != string.Empty) { mail.Bcc.Add(messageitem.BccEmail); } mail.IsBodyHtml = true; EMailQueueItem emailQueueItem = new EMailQueueItem(); emailQueueItem.ApplicationID = application.Id; emailQueueItem.CreatedDate = DateTime.Now; emailQueueItem.EmailObject = Utility.ObjectToByteArray(messageitem); emailQueueItem.NumberOfAttempts = -1; try { using (var client = new SmtpClient(emailConfiguration.SMTPClientHostName, emailConfiguration.SmtpClientPortNumber)) { client.Credentials = new NetworkCredential(emailConfiguration.SMTPClientUserName, emailConfiguration.SMTPClientPassword); client.EnableSsl = emailConfiguration.IsSSLEnabled; client.Send(mail); emailQueueItem.StatusID = (int)MessageDeliveryStatus.Delivered; emailQueueItem.DeliveryResponse = "Email delivered successfully"; emailQueueItem.DeliveryDate = DateTime.Now; status = (int)MessageDeliveryStatus.Delivered; } } catch (SmtpFailedRecipientsException ex) { emailQueueItem.DeliveryResponse = JsonConvert.SerializeObject(ex); emailQueueItem.StatusID = (int)MessageDeliveryStatus.Failed; status = (int)MessageDeliveryStatus.Failed; } finally { repository.AddEmailToQueue(emailQueueItem); } } } else { status = (int)MessageDeliveryStatus.Failed; } } else { status = (int)MessageDeliveryStatus.Failed; } return((MessageDeliveryStatus)status); }
public MessageDeliveryStatus SendMessage(EMailQueueItem emailqueueitem) { Repository.MessagingRepository repository = new Repository.MessagingRepository(); int status; var emailConfiguration = repository.GetEmailConfiguration(emailqueueitem.ApplicationID); if (emailConfiguration != null) { EmailMessage emailMessage = (EmailMessage)Utility.ByteArrayToObject(emailqueueitem.EmailObject); var message = (EmailMessage)Utility.ByteArrayToObject(emailqueueitem.EmailObject); using (var mail = new System.Net.Mail.MailMessage(message.FromEmail, message.ToEmail, message.EMailSubject, message.EMailBody)) { if (message.CcEmail != null || message.CcEmail != string.Empty) { mail.CC.Add(message.CcEmail); } if (message.BccEmail != null || message.BccEmail != string.Empty) { mail.Bcc.Add(message.BccEmail); } mail.IsBodyHtml = true; try { using (var client = new SmtpClient(emailConfiguration.SMTPClientHostName, emailConfiguration.SmtpClientPortNumber)) { emailqueueitem.NumberOfAttempts += 1; client.Credentials = new NetworkCredential(emailConfiguration.SMTPClientUserName, emailConfiguration.SMTPClientPassword); client.EnableSsl = emailConfiguration.IsSSLEnabled; client.Send(mail); status = (int)MessageDeliveryStatus.Delivered; emailqueueitem.StatusID = (int)MessageDeliveryStatus.Delivered; emailqueueitem.DeliveryResponse = "Email delivered successfully"; emailqueueitem.DeliveryDate = DateTime.Now; } } catch (SmtpFailedRecipientsException ex) { emailqueueitem.DeliveryResponse = JsonConvert.SerializeObject(ex); if (emailConfiguration.MaxNumberOfRetry >= emailqueueitem.NumberOfAttempts) { emailqueueitem.StatusID = (int)MessageDeliveryStatus.Failed; } status = (int)MessageDeliveryStatus.Failed; } finally { repository.UpdateEmailToQueue(emailqueueitem); } } } else { status = (int)MessageDeliveryStatus.Failed; } return((MessageDeliveryStatus)status); }