public Guid InsertQueue(MailMessage queueMessage) { Message message = new Message(); Email email = new Email(); QueueMaster queue = new QueueMaster(); Status status = new Status(); using (var queueConnection = new EmailQueueConnections()) { // message.Emails = message.Emails; message.Subject = queueMessage.Subject; message.Body = queueMessage.Body; message.IsBodyHtml = queueMessage.IsBodyHtml; queueConnection.Messages.Add(message); queueConnection.SaveChanges(); email.EmailAddress = queueMessage.From.Address; email.MessageId = message.Id; email.IsSender = true; email.IsReciever = false; queueConnection.Emails.Add(email); queueConnection.SaveChanges(); foreach (var toEmail in queueMessage.To) { email.MessageId = message.Id; email.EmailAddress = toEmail.Address; email.IsSender = false; email.IsReciever = true; queueConnection.Emails.Add(email); } queueConnection.SaveChanges(); queue.OrganizationId = Convert.ToInt32(CommonFunctions.GetSmtpHeaders(queueMessage)[Constant.OrganizationId]); queue.Id = Guid.NewGuid(); queue.MessageId = message.Id; queue.StatusId = 1; //queue.StatusId = status.Id; //queue.Status = "InProcess"; queueConnection.QueueMasters.Add(queue); queueConnection.SaveChanges(); } return(queue.Id); }
public void ArchieveQueue(Guid queueId) { using (var db = new EmailQueueConnections()) { var queueMaster = db.QueueMasters.Single(m => m.Id == queueId); QueueArchive queueArchive = new QueueArchive(); queueArchive.QueueId = queueMaster.Id; queueArchive.OrganizationId = queueMaster.OrganizationId; queueArchive.QueueOrder = queueMaster.QueuedOrder; queueArchive.QueuedDate = queueMaster.QueuedDate; queueArchive.ProcessedDate = queueMaster.ProcessedDate; queueArchive.Attempts = queueMaster.Attempts; queueArchive.Retry = queueMaster.Retry; queueArchive.MessageId = queueMaster.MessageId; queueArchive.Status = queueMaster.Status; db.QueueArchives.Add(queueArchive); db.SaveChanges(); db.QueueMasters.Remove(queueMaster); db.SaveChanges(); } }