Пример #1
0
        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();
            }
        }
Пример #2
0
        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;
        }