示例#1
0
        private static void sendEmailSchedule()
        {
            using (SendMailEntities db = new SendMailEntities())
            {
                List<TempScheduleSendEmail> list_temp = new List<TempScheduleSendEmail>();
                List<LogSendEmail> lst_logEndEmail = new List<LogSendEmail>();

                TempScheduleSendEmail latest = db.TempScheduleSendEmails.Where(x => x.IDUser == mGlobal.UserID).ToList().OrderBy(m => m.TimeSchedule).FirstOrDefault();
                list_temp = db.TempScheduleSendEmails.Where(x => x.TimeSchedule == latest.TimeSchedule && x.IDUser == mGlobal.UserID).ToList();
                Int64 idEmailOwn = Int64.Parse(list_temp[0].IDEmailOwn.ToString());
                EmailOwn emailOwn = db.EmailOwns.FirstOrDefault(x => x.ID == idEmailOwn);
                foreach (var item in list_temp)
                {

                    //get contact
                    Contact contact = db.Contacts.FirstOrDefault(x => x.Email == item.Email);

                    //save log send email
                    LogSendEmail log = new LogSendEmail();
                    if (item.IDCampaign != null)
                    {
                        log.CampaignID = item.IDCampaign;
                    }

                    log.ContactID = contact.ContactID;
                    log.StatusSend = true;
                    log.IDEmailOwn = emailOwn.ID;
                    log.TypeServiceUsed = "STPM";
                    log.UserID = mGlobal.UserID;
                    log.Subject = item.Subject;
                    log.Body = item.ContentEmail;
                    log.TimeSend = (DateTime)item.TimeSchedule;

                    lst_logEndEmail.Add(log);

                    STPMService.SendMail(emailOwn.Email
                           , Cryption.Decrypt(emailOwn.Password)
                           , item.Email
                           , item.Subject
                           , item.ContentEmail);
                }
                //db.EmailContents.AddRange(lst_emailContent);
                db.LogSendEmails.AddRange(lst_logEndEmail);
                db.TempScheduleSendEmails.RemoveRange(list_temp);
                db.SaveChanges();
            }
        }
        private void saveTempScheduleSendEmail()
        {
            ListEditItem cmbEmailOwnselectedItem    = cmbEmailOwn.SelectedItem;
            ListEditItem cmbcmbCampaignselectedItem = cmbCampaign.SelectedItem;

            CampaignName = cmbcmbCampaignselectedItem.GetValue("CampaignName").ToString();
            mdtSchedule  = DateTime.Parse(Request.Form[txt_date_schedule.UniqueID]);
            string jobName      = "Job" + mGlobal.AccountName + CampaignName + mdtSchedule;
            string groupJobName = "GroupJob" + mGlobal.AccountName;
            string triggerName  = "Trigger" + jobName;
            string triggerGroup = "TriggerGroup" + groupJobName;

            for (int i = 0; i < gridView.VisibleRowCount; i++)
            {
                if (gridView.GetRowLevel(i) == gridView.GroupCount)
                {
                    object keyValue = gridView.GetRowValues(i, new string[] { DataField.STT, DataField.Email, DataField.Subject, DataField.Content });
                    if (keyValue != null)
                    {
                        using (SendMailEntities db = new SendMailEntities())
                        {
                            Array arr = (Array)keyValue;
                            TempScheduleSendEmail temp = new TempScheduleSendEmail();
                            temp.STT          = Int64.Parse(arr.GetValue(0).ToString());
                            temp.Email        = arr.GetValue(1).ToString();
                            temp.Subject      = arr.GetValue(2).ToString();
                            temp.ContentEmail = arr.GetValue(3).ToString();
                            temp.IDEmailOwn   = Int64.Parse(cmbEmailOwnselectedItem.GetValue("ID").ToString());
                            temp.IDCampaign   = Int64.Parse(cmbcmbCampaignselectedItem.GetValue("CampaignID").ToString());
                            temp.TimeSchedule = mdtSchedule;
                            temp.IDUser       = mGlobal.UserID;
                            temp.JobName      = jobName;
                            temp.JobGroup     = groupJobName;
                            db.TempScheduleSendEmails.Add(temp);
                            db.SaveChanges();
                        }
                    }
                }
            }

            //call service schedule email
            SendMailService proxy = new SendMailService();

            proxy.SendEmailSchedule(jobName, groupJobName, triggerName, triggerGroup, mdtSchedule);
        }