Example #1
0
 public void InsertOrUpdate(EmailSentStatus emailsentstatus)
 {
     if (emailsentstatus.ID == default(long))
     {
         // New entity
         context.EmailSentStatus.Add(emailsentstatus);
     }
     else
     {
         // Existing entity
         context.Entry(emailsentstatus).State = System.Data.Entity.EntityState.Modified;
     }
 }
Example #2
0
        public EmailSentStatus QueryStatus(string requestID)
        {
            var result = new EmailSentStatus()
            {
                EmailRef = string.Empty,
                Status   = Constants.RESPONSE_STATUS_PENDING_DESC
            };

            var reqParam = new SqlParameter("@Ref", requestID);

            if (!string.IsNullOrEmpty(requestID))
            {
                var record = Connection.Database.SqlQuery <Email>(
                    "exec Sp_SelectEmail @Ref ", reqParam
                    );

                if (record != null)
                {
                    try
                    {
                        var resultSet = record.ToListAsync().Result[0];
                        result = new EmailSentStatus
                        {
                            EmailRef = resultSet.EmailRef.ToString(),
                            Status   = (resultSet.IsSent) ? Constants.RESPONSE_STATUS_SENT_DESC : Constants.RESPONSE_STATUS_PENDING_DESC
                        };
                    }
                    catch (Exception ex)
                    {
                        result = new EmailSentStatus
                        {
                            EmailRef = string.Empty,
                            Status   = Constants.RESPONSE_STATUS_PENDING_DESC
                        };
                    }
                }
            }

            return(result);
        }
        // GET api/FetchMails
        /// <summary>
        /// API to get email list
        /// Mahedee @20-03-14
        /// </summary>
        /// <returns></returns>
        public List <Mailer> Get()
        {
            List <Mailer> objOflstMailer = new List <Mailer>();

            //Dictionary<int, string> lstOfEmailSchedules = unitofWork.EmailSchedulerRepository.GetSchedulerList();

            //foreach (KeyValuePair<int,string> item in lstOfEmailSchedules)
            //{
            //    if (item.Key == 1)  //Do for "Remainder email for provide estimation"
            //    {
            //        //Do for "Remainder email for provide estimation"

            //       objOflstMailer = EstimationMail();
            //    }
            //}


            //objOflstMailer.Add(new Mailer { UseMailID = "*****@*****.**", HtmlMailBody = "This is a test mgs", MailSubject = "Hello msg" });

            List <EmailScheduler> emailschedulerlst = unitofWork.EmailSchedulerRepository.GetEmailSchedulerAll(); // This Method Return All the Schedule

            DateTime cdate           = DateTime.Now;
            DateTime onlyDate        = cdate.Date;
            TimeSpan ts1             = cdate.TimeOfDay;
            DateTime currentdateTime = onlyDate + ts1;

            List <EmailSentStatus> objOfEmailSent = new List <EmailSentStatus>();

            objOfEmailSent = unitofWork.EmailSentStatusRepository.GetEmailSentStatuseAll();


            foreach (var emailSchedule in emailschedulerlst)
            {
                if (emailSchedule.SchedulerTitleID == 2) //This is for Daily Status mail
                {
                    //List<EmailSentStatus> objOfEmailSent = new List<EmailSentStatus>();
                    //objOfEmailSent = unitofWork.EmailSentStatusRepository.GetEmailSentStatuseAll();

                    //DateTime cdate = DateTime.Now;
                    //DateTime onlyDate = cdate.Date;
                    //TimeSpan ts1 = cdate.TimeOfDay;
                    //DateTime currentdateTime = onlyDate + ts1;

                    DateTime scheduleDateTime = DateTime.ParseExact(emailSchedule.ScheduledTime, "h:mm tt", CultureInfo.InvariantCulture);

                    if (objOfEmailSent.Count > 0)
                    {
                        foreach (var ObjofList in objOfEmailSent)
                        {
                            bool emailStatus = unitofWork.EmailSentStatusRepository.EmailSentStatus(ObjofList.EmailSchedulerID, ObjofList.ScheduleTypeID, scheduleDateTime);
                            if (emailStatus == true && currentdateTime >= scheduleDateTime)
                            {
                                continue;
                            }
                            else if (currentdateTime <= scheduleDateTime)
                            {
                                continue;
                            }

                            else
                            {
                                objOflstMailer = DailyTaskStatus(emailSchedule);
                                //objOflstMailer.AddRange(DailyTaskStatusForCreator());

                                if (objOflstMailer.Count >= 0)
                                {
                                    EmailSentStatus objEmailSentStatus = new EmailSentStatus();
                                    objEmailSentStatus.EmailSchedulerID = 2;
                                    objEmailSentStatus.ScheduleTypeID   = 1;
                                    DateTime date = DateTime.ParseExact(emailSchedule.ScheduledTime, "h:mm tt", CultureInfo.InvariantCulture);
                                    TimeSpan ts   = date.TimeOfDay;
                                    objEmailSentStatus.ScheduleDateTime = DateTime.Today.Add(ts);
                                    objEmailSentStatus.SentDateTime     = DateTime.Now;
                                    objEmailSentStatus.SentStatus       = true;
                                    objEmailSentStatus.ActionTime       = DateTime.Now;

                                    unitofWork.EmailSentStatusRepository.InsertOrUpdate(objEmailSentStatus);
                                    unitofWork.Save();
                                }
                            }
                        }
                    }

                    else
                    {
                        if (currentdateTime >= scheduleDateTime)
                        {
                            objOflstMailer = DailyTaskStatus(emailSchedule);
                            //objOflstMailer.AddRange(DailyTaskStatusForCreator());

                            if (objOflstMailer.Count >= 0)
                            {
                                EmailSentStatus objEmailSentStatus = new EmailSentStatus();
                                objEmailSentStatus.EmailSchedulerID = 2;
                                objEmailSentStatus.ScheduleTypeID   = 1;
                                DateTime date = DateTime.ParseExact(emailSchedule.ScheduledTime, "h:mm tt", CultureInfo.InvariantCulture);
                                TimeSpan ts   = date.TimeOfDay;
                                objEmailSentStatus.ScheduleDateTime = DateTime.Today.Add(ts);
                                objEmailSentStatus.SentDateTime     = DateTime.Now;
                                objEmailSentStatus.SentStatus       = true;
                                objEmailSentStatus.ActionTime       = DateTime.Now;

                                unitofWork.EmailSentStatusRepository.InsertOrUpdate(objEmailSentStatus);
                                unitofWork.Save();
                            }
                        }
                    }
                }

                else if (emailSchedule.SchedulerTitleID == 4) // This is for Notification Email
                {
                    DateTime scheduleDateTime = DateTime.ParseExact(emailSchedule.ScheduledTime, "h:mm tt", CultureInfo.InvariantCulture);
                    //List<Notification> ListOfNotification = unitofWork.NotificationRepository.GetNotificationDetails(emailSchedule);

                    if (objOfEmailSent.Count > 0)
                    {
                        foreach (var objOfEmailSentStutusDet in objOfEmailSent)
                        {
                            bool emailStatus = unitofWork.EmailSentStatusRepository.EmailSentStatus(objOfEmailSentStutusDet.EmailSchedulerID, objOfEmailSentStutusDet.ScheduleTypeID, scheduleDateTime);

                            if (emailStatus == true && currentdateTime > scheduleDateTime)
                            {
                                continue;
                            }
                            else if (currentdateTime <= scheduleDateTime)
                            {
                                continue;
                            }

                            else
                            {
                                objOflstMailer = NotificationEmail(emailSchedule.ProjectID, scheduleDateTime); // Mail Function Call here

                                if (objOflstMailer.Count >= 0)
                                {
                                    EmailSentStatus objEmailSentStatus = new EmailSentStatus();
                                    objEmailSentStatus.EmailSchedulerID = 4;
                                    objEmailSentStatus.ScheduleTypeID   = 1;
                                    DateTime date = DateTime.ParseExact(emailSchedule.ScheduledTime, "h:mm tt", CultureInfo.InvariantCulture);
                                    TimeSpan ts   = date.TimeOfDay;
                                    objEmailSentStatus.ScheduleDateTime = DateTime.Today.Add(ts);
                                    objEmailSentStatus.SentDateTime     = DateTime.Now;
                                    objEmailSentStatus.SentStatus       = true;
                                    objEmailSentStatus.ActionTime       = DateTime.Now;

                                    unitofWork.EmailSentStatusRepository.InsertOrUpdate(objEmailSentStatus);
                                    unitofWork.Save();
                                }
                            }
                        }
                    }
                    else
                    {
                        if (currentdateTime >= scheduleDateTime)
                        {
                            objOflstMailer = NotificationEmail(emailSchedule.ProjectID, scheduleDateTime); // Mail Function Call here

                            if (objOflstMailer.Count >= 0)
                            {
                                EmailSentStatus objEmailSentStatus = new EmailSentStatus();
                                objEmailSentStatus.EmailSchedulerID = 4;
                                objEmailSentStatus.ScheduleTypeID   = 1;
                                DateTime date = DateTime.ParseExact(emailSchedule.ScheduledTime, "h:mm tt", CultureInfo.InvariantCulture);
                                TimeSpan ts   = date.TimeOfDay;
                                objEmailSentStatus.ScheduleDateTime = DateTime.Today.Add(ts);
                                objEmailSentStatus.SentDateTime     = DateTime.Now;
                                objEmailSentStatus.SentStatus       = true;
                                objEmailSentStatus.ActionTime       = DateTime.Now;

                                unitofWork.EmailSentStatusRepository.InsertOrUpdate(objEmailSentStatus);
                                unitofWork.Save();
                            }
                        }
                    }
                }
            }

            return(objOflstMailer);
            //return new List<Mailer>();
        }