public static IList <Model_Campaign> GetAllCampaignCP(Model_Campaign param) { Model_SendingJob mj = new Model_SendingJob(); mj.UpdateStatusMailProcess(); return(param.model_getCampaign(param)); }
public static int TaskSendingNow() { Model_SendingJobItem ci = new Model_SendingJobItem(); Model_SendingJob c = new Model_SendingJob(); Model_Setting s = new Model_Setting(); s = s.GetSetting(); IList <Model_SendingJob> cl = c.GetSendingJob(); Lock.AcquireWriterLock(Timeout.Infinite); SendingEngineController.Onprocess = true; //SendingEngineController.SendResponse = job; Lock.ReleaseWriterLock(); //if (cpool.IsBusy) // cpool.Shutdown(); foreach (Model_SendingJob i in cl) { IList <Model_SendingJobItem> cil = ci.GetSendingJob(i.SDID); object[] parameters = new object[] { cil, s, i, HttpContext.Current }; SendingEngineController.cpool.QueueWork(parameters, Sendnow); // Sendnow(parameters); } //Sendnow(parameters); return(1); }
public static IList <Model_Mailbox> GetAllMailboxCP(Model_Mailbox param) { Model_SendingJob mj = new Model_SendingJob(); mj.UpdateStatusMailProcess(); return(param.model_getMailbox_checkProcess(param)); }
public static IList <Model_SendingJob> GetProcessSendingAndUpdateStatus() { Model_SendingJob mj = new Model_SendingJob(); mj.UpdateStatusMailProcess(); return(mj.GetSendingJob()); }
private static Model_SendingJob QueAddJob(Model_SendingJob sj, bool IsSch, int CID, int total_reciever, bool IsinTime, byte CType) { //mainJob sj.CID = CID; sj.StatusID = 1; //Ctype 1 for Campaign sj.CType = CType; sj.Isdone = false; sj.TotalSend = total_reciever; return(sj.AddJob(sj)); }
private static void QueAddJobItem(Model_SendingJob rs, IEnumerable <IGrouping <string, Model_Subscriber> > sl_filter, string[] MailAddress = null) { if (rs.SDID > 0) { if (MailAddress != null && MailAddress.Length > 0) { int count1 = 1; foreach (string m in MailAddress) { if (!string.IsNullOrEmpty(m)) { Model_SendingJobItem st = new Model_SendingJobItem(); st.SDID = rs.SDID; st.Que = count1; st.Status = true; st.IsSent = false; st.Email = m; st.AddJobItem(st); } count1 = count1 + 1; } } //JobItem int count = 1; foreach (var group in sl_filter) { string Email = group.Key; if (!string.IsNullOrEmpty(Email)) { Model_SendingJobItem st = new Model_SendingJobItem(); st.SDID = rs.SDID; st.Que = count; st.Status = true; st.IsSent = false; st.Email = Email; st.SID = group.FirstOrDefault().SID; st.AddJobItem(st); } count = count + 1; } } }
public static int SendQue() { Model_Campaign c = new Model_Campaign(); Model_Mailbox m = new Model_Mailbox(); IList <Model_Campaign> cl = c.model_Que(); IList <Model_Mailbox> ml = m.model_Que(); //SendingJob sj = new SendingJob(); //SendingJobItem st = new SendingJobItem(); foreach (Model_Campaign i in cl) { byte mailStatus = 3; byte jobstatus = 1; Model_SendingJob sd = new Model_SendingJob(); try { bool IsinTime = QueIsinTime(i.DateTimePublish); IList <Model_Subscriber> sl = allSubscriber(i.SG); var sl_filter = sl.Where(e => MAilSender.IsMatchEmail(e.Email)).GroupBy(j => j.Email); int TotalSubscriber = sl_filter.Count(); sd = QueAddJob(sd, i.IsSchedule, i.CID, TotalSubscriber, IsinTime, 1); //Sending if (sd.SDID > 0) { QueAddJobItem(sd, sl_filter); } } catch { } sd.UpdateJobStatus(sd.SDID, jobstatus); i.model_updatestatus(i.CID, mailStatus); i.model_UpdateToJob(i.CID, true); } foreach (Model_Mailbox i in ml) { byte mailStatus = 3; byte jobstatus = 1; Model_SendingJob sd = new Model_SendingJob(); try { bool IsinTime = QueIsinTime(i.DateTimePublish); IList <Model_Subscriber> sl = allSubscriber(i.SG); var sl_filter = sl.Where(e => MAilSender.IsMatchEmail(e.Email)).GroupBy(j => j.Email); string[] mailboxreciever = MailAddress(i.Mailaddress); int TotalSubscriber = sl_filter.Count(); int Totalmailbox = mailboxreciever.Count(); sd = QueAddJob(sd, i.IsSchedule, i.CID, TotalSubscriber + Totalmailbox, IsinTime, 2); if (sd.SDID > 0) { QueAddJobItem(sd, sl_filter, mailboxreciever); } } catch (Exception ex) { string error = ex.Message + ex.StackTrace; } sd.UpdateJobStatus(sd.SDID, jobstatus); i.model_updatestatus(i.CID, mailStatus); i.model_UpdateToJob(i.CID, true); } return(SendNow()); }
public static void Sendnow(object param) { object[] parameters = (object[])param; List <Model_SendingJobItem> cli = (List <Model_SendingJobItem>)parameters[0]; Model_Setting s = (Model_Setting)parameters[1]; Model_SendingJob ms = (Model_SendingJob)parameters[2]; HttpContext context = (HttpContext)parameters[3]; //Model_SendingJob ms = new Model_SendingJob(); //var groupCampaignCID = cli.Where(cam => cam.CType == 1).GroupBy(c => c.CID); //var groupMailboxCID = cli.Where(cam => cam.CType == 2).GroupBy(c => c.CID); //StringBuilder strCam = new StringBuilder(); //StringBuilder strMailBox = new StringBuilder(); //foreach (var ss in groupCampaignCID) //{ // int propertyIntOfClassA = ss.Key; // strCam.Append(propertyIntOfClassA + ","); //} //strCam.Append("0"); //foreach (var ss in groupMailboxCID) //{ // int propertyIntOfClassA = ss.Key; // strMailBox.Append(propertyIntOfClassA + ","); //} //strMailBox.Append("0"); IList <Model_Campaign> mdc = CampaignController.GetCampaign(ms.CID.ToString()); IList <Model_Mailbox> mdm = MailboxController.GetMailbox(ms.CID.ToString()); MailSenderOption option = new MailSenderOption { MailSetting = s, context = context }; EmailEelements e = new EmailEelements(); // _el = (EModel)e.model_GetElementBYID(this.EID).Eelement.JsonToObject(new EModel()); int count = 1; foreach (Model_SendingJobItem c in cli) { if (c.CType == 1) { Model_Campaign cam = mdc.SingleOrDefault(r => r.CID == c.CID); EModel el = (EModel)cam.ELRaw.JsonToObject(new EModel()); option.Subject = cam.Subject; string bodymail = el.html; if (cam.Unsub) { bodymail = bodymail.Replace("</body>", appendSubscription(c.SID)); } option.Mailbody = bodymail; if (!string.IsNullOrEmpty(cam.FileMail)) { option.Attachment = GetFileMail(cam.FileMail); } } else { Model_Mailbox cam = mdm.SingleOrDefault(r => r.CID == c.CID); EModel el = (EModel)cam.ELRaw.JsonToObject(new EModel()); option.Subject = cam.Subject; string bodymail = appendHtmlforMailbox(el.html); if (cam.Unsub && c.SID != 0) { bodymail = bodymail.Replace("</body>", appendSubscription(c.SID)); } option.Mailbody = bodymail; if (!string.IsNullOrEmpty(cam.FileMail)) { option.Attachment = GetFileMail(cam.FileMail); } } option.mailTo = c.Email; //"*****@*****.**", "Gosolve", c.Email, "Thread Sending", "", "Thread Sending Thread Sending" if (MAilSender.SendMailEngine(option)) { c.UpdateStatus(c.SDIID, true); } // Lock.AcquireWriterLock(Timeout.Infinite); //SendingEngineController.SendResponse.SingleOrDefault(ii => ii.CID == c.CID).TotalSent += 1; // Lock.ReleaseWriterLock(); ms.UpdateTotalSentAndISDone(c.SDID); count = count + 1; } Lock.AcquireWriterLock(Timeout.Infinite); SendingEngineController.Onprocess = false; Lock.ReleaseWriterLock(); }