Ejemplo n.º 1
0
        public ActionResult Fails()
        {
            db = new DiversityTraxEntities();

            var data = db.emailQueueFailedLog.ToList();

            return(View(data));
        }
Ejemplo n.º 2
0
        public ActionResult Success()
        {
            db = new DiversityTraxEntities();

            var data = db.emailQueueSuccessfulLogs.ToList();

            return(View(data));
        }
Ejemplo n.º 3
0
        public ActionResult Index()
        {
            db = new DiversityTraxEntities();

            var data = db.emailQueue.OrderBy(x => x.EPriority).ToList();

            return(View(data));
        }
Ejemplo n.º 4
0
        public Queue <emailQueue> enqueue()
        {
            db = new DiversityTraxEntities();

            var data = db.emailQueue.Where(x => x.EstatusId == 0).OrderBy(x => x.EPriority).ToList();

            Queue <emailQueue> orderedRequests = new Queue <emailQueue>();

            for (int i = 0; i < data.Count; i++)
            {
                orderedRequests.Enqueue(data[i]);
            }

            return(orderedRequests);
        }
Ejemplo n.º 5
0
        public int dequeue(Queue <emailQueue> data)
        {
            var bodySearch = "[TemplateBodyHere]";

            var subjectSearch = "[TemplateSubjectHere]";

            var reasonSearch = "[TemplateReasonHere]";

            var clientName = "[TemplateClientName]";

            db = new DiversityTraxEntities();

            Queue <emailQueue> failedMails = new Queue <emailQueue>();

            Queue <emailQueue> sentMails = new Queue <emailQueue>();

            int[] MessageCount = { 0, 0 };

            int totalRequests = data.Count;

            emailQueueSuccessfulLogs updateSuccessLog = new emailQueueSuccessfulLogs();

            emailQueueFailedLog updatefailedLog = new emailQueueFailedLog();

            for (int i = 0; i < totalRequests; i++)
            {
                emailQueue emailDetails = (emailQueue)data.Dequeue();

                Templates presentTemplate = new Templates();

                presentTemplate = db.Templates.Find(emailDetails.TableId);

                var modifiedBody = presentTemplate.Template_Content.Replace(bodySearch, emailDetails.EBody);

                modifiedBody = modifiedBody.Replace(subjectSearch, emailDetails.ESubject);

                modifiedBody = modifiedBody.Replace(reasonSearch, emailDetails.EReason);

                modifiedBody = modifiedBody.Replace(clientName, emailDetails.EName);

                MailMessage mail = new MailMessage();

                mail.To.Add(emailDetails.ETo);

                mail.Subject = emailDetails.ESubject;

                mail.Body = modifiedBody;

                mail.IsBodyHtml = true;

                SmtpClient smtp = new SmtpClient();

                smtp.EnableSsl = true;

                try
                {
                    smtp.Send(mail);

                    emailDetails.Tries = (int)emailDetails.Tries + 1;

                    db.Entry(emailDetails).State = EntityState.Modified;

                    db.SaveChanges();

                    sentMails.Enqueue(emailDetails);
                }
                catch
                {
                    emailDetails.Tries = (int)emailDetails.Tries + 1;

                    db.Entry(emailDetails).State = EntityState.Modified;

                    db.SaveChanges();

                    failedMails.Enqueue(emailDetails);
                }
            }

            MessageCount[0] = sentMails.Count;

            MessageCount[1] = failedMails.Count;

            for (int i = 0; i < MessageCount[0]; i++)
            {
                emailQueue currMail = (emailQueue)sentMails.Dequeue();

                currMail.EstatusId = 1;

                currMail.EStatus = "Posted";

                updateSuccessLog.ETo = currMail.ETo;

                updateSuccessLog.EDate = DateTime.Today;

                updateSuccessLog.ETime = DateTime.Now.TimeOfDay;

                updateSuccessLog.Tries = currMail.Tries;

                db.Entry(currMail).State = EntityState.Modified;

                db.SaveChanges();

                db.emailQueueSuccessfulLogs.Add(updateSuccessLog);

                db.SaveChanges();
            }

            for (int i = 0; i < MessageCount[1]; i++)
            {
                emailQueue currMail = (emailQueue)failedMails.Dequeue();

                updatefailedLog.ETo = currMail.ETo;

                updatefailedLog.EDate = DateTime.Today;

                updatefailedLog.ETime = DateTime.Now.TimeOfDay;

                updatefailedLog.Tries = currMail.Tries;

                db.emailQueueFailedLog.Add(updatefailedLog);

                db.SaveChanges();
            }

            return(MessageCount[0]);
        }
Ejemplo n.º 6
0
 public void dbConnection()
 {
     DiversityTraxEntities db = new DiversityTraxEntities();
 }