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); }