public void Execute() { try { logMe.Log("UpdateCampaignActivity - Execute", "UpdateCampaignActivity Uygulaması Başladı.Tarih : " + DateTime.Now.ToString(), TEMPEventLog.EventType.Info); #region | Get Campaign Activity | #region | Query | string queryCA = @"SELECT E.ActivityId CAID, ( SELECT COUNT(0) FROM NEFCUSTOM_MSCRM..EuroMessageMailErrorTable WHERE Error = 1 AND ActivityId = e.ActivityId )FailureCount, ( SELECT COUNT(0) FROM NEFCUSTOM_MSCRM..EuroMessageMailTempTable WHERE Error = 0 AND ActivityId = e.ActivityId AND StatusCode!=5 )EmailCount, ( SELECT COUNT(0) FROM NEFCUSTOM_MSCRM..EuroMessageMailTempTable WHERE Error = 0 AND StatusCode = 100000003 AND ActivityId = e.ActivityId )NoSendEmailCount, ( SELECT COUNT(0) FROM NEFCUSTOM_MSCRM..EuroMessageMailTempTable WHERE ActivityId = e.ActivityId AND Error = 0 AND ( StatusCode = 100000001 OR StatusCode = 1 ) )ResponseWaitingCount FROM NEFCUSTOM_MSCRM..EuroMessageMailTempTable E (NOLOCK), CampaignActivity Ca (NOLOCK) WHERE ca.ActivityId = E.ActivityId --and -- GETDATE() > Ca.new_euromessagereportlimit GROUP BY E.ActivityId"; #endregion | Query | sda.openConnection(Globals.ConnectionString); DataTable dtCA = sda.getDataTable(queryCA); sda.closeConnection(); EmailFunctions eFunc = new EmailFunctions(); foreach (DataRow dr in dtCA.Rows) { if ((int)dr["ResponseWaitingcount"] == 0) { try { Guid campaignActivityId = (Guid)dr["CAID"]; UpdateCampaignActivityStatus(campaignActivityId); } catch (Exception ex) { logMe.Log("UpdateCampaignActivity - Execute", ex, TEMPEventLog.EventType.Exception); } } } #endregion logMe.Log("UpdateCampaignActivity - Execute", "UpdateCampaignActivity Uygulaması Bitti.Tarih : " + DateTime.Now.ToString(), TEMPEventLog.EventType.Info); } catch (Exception ex) { logMe.Log("UpdateCampaignActivity - Execute", ex, TEMPEventLog.EventType.Exception); } }
public void Execute() { DateTime startDate; DateTime endDate; Guid campaignActivityId; Guid ownerId; Guid marketingListId; EMTempProcess emt; try { Console.WriteLine("Mail gönderim uygulaması çalıştı."); logMe.Log("CreateMail - Execute", "Mail oluşturma uygulaması başladı.", TEMPEventLog.EventType.Info); #region Periyodik gönderimler dağıtıldı durumuna çekilir. EmailFunctions eFunc = new EmailFunctions(); //eFunc.TestCampaignActivity(); //eFunc.SetCampaignActivityDistributed(); #endregion // #region | Get Campaign Activity | // // StatusCode değeri 'Dağıtıldı' ve Kanal Tipi 'Email' olan kampanya aktiviteleri alınıyor. // string queryCActivity = @" // SELECT // CA.ActivityId CAID, // DATEADD(HOUR,DATEDIFF(HOUR,GETUTCDATE(),GETDATE()),CA.scheduledend) CASEND, // DATEADD(HOUR,DATEDIFF(HOUR,GETUTCDATE(),GETDATE()),CA.scheduledstart) CAS, // CA.[Subject] CS, // CA.CreatedBy 'owner' // FROM // CampaignActivity CA (NOLOCK) // WHERE // CA.StatusCode = 6 // AND // CA.ChannelTypeCode = 7"; // DataTable dtCActivity = sda.GetDataTable(queryCActivity); // Console.WriteLine("Gönderilmeyi bekleyen kampanya aktiviteleri alındı."); // logMe.Log("CreateMail - Execute", "Gönderilmeyi bekleyen kampanya aktiviteleri alındı. Adet: " + dtCActivity.Rows.Count, TEMPEventLog.EventType.Info); // #endregion | Get Campaign Activity | Console.WriteLine("Email oluşturma işlemleri başladı."); try { //startDate = (DateTime)dr["CAS"]; //endDate = (DateTime)dr["CASEND"]; //campaignActivityId = (Guid)dr["CAID"]; //ownerId = (Guid)dr["owner"]; #region | Process Marketing Lists | //Kampanya aktivitesine ait listeler çekilir. DataTable dtMarketingLists = GetMarketingList(); if (dtMarketingLists != null && dtMarketingLists.Rows.Count > 0) { foreach (DataRow drList in dtMarketingLists.Rows) { marketingListId = new Guid(drList["ListId"].ToString()); try { emt = new EMTempProcess(); bool result = emt.Process(marketingListId.ToString()); // Result true dönerse kampanya aktivitesinin durumu değiştirilir. //if (result) //{ //SetStateRequest stateRequest = new SetStateRequest() //{ // EntityMoniker = new EntityReference("campaignactivity", campaignActivityId), // State = new OptionSetValue(0), // Status = new OptionSetValue(100000003) //}; //SetStateResponse stateResponse = (SetStateResponse)orgService.Execute(stateRequest); //} } catch (Exception ex) { logMe.Log("CreateMail", ex, TEMPEventLog.EventType.Exception, "List", marketingListId.ToString()); continue; } } } #endregion | Process Marketing Lists | } catch (Exception) { throw; } } catch (Exception) { throw; } }
public void Execute() { string campaignXmlFile = string.Empty; string mailList = string.Empty; string dataFile = string.Empty; string zipFileName = string.Empty; Guid listId = Guid.Empty; Console.WriteLine("Mail gönderim uygulaması çalıştı."); try { logMe.Log("SendMailIntegration - Execute", "Mail gönderim uygulaması başladı.", TEMPEventLog.EventType.Info); // #region | Get Campaign Activity | // //Euromessage' a gönderilmeyi bekleyen Kampanya Aktiviteleri çekiliyor. // string queryCActivity = @" // SELECT // CA.ActivityId CAID, // DATEADD(HOUR,DATEDIFF(HOUR,GETUTCDATE(),GETDATE()),CA.scheduledstart) CAS, // CA.[Subject] CS // FROM // CampaignActivity CA (NOLOCK) // WHERE // CA.StatusCode = 100000003 AND CA.StateCode=0 AND CA.ChannelTypeCode=7"; // DataTable dtCActivity = sda.GetDataTable(queryCActivity); // Console.WriteLine("Euromessage' a iletilmeyi bekleyen kampanya aktiviteleri alındı."); // logMe.Log("SendMailIntegration - Execute", "Euromessage' a iletilmeyi bekleyen kampanya aktiviteleri alındı. Adet: " + dtCActivity.Rows.Count, TEMPEventLog.EventType.Info); // #endregion | Get Campaign Activity | EmailFunctions eFunc = new EmailFunctions(); //foreach (DataRow dr in dtCActivity.Rows) //{ Console.WriteLine("Kampanya aktivitesi işlemleri başladı."); //DateTime startDate = (DateTime)dr["CAS"]; //if ((DateTime.Now.Hour == startDate.Hour && DateTime.Now.Minute >= startDate.Minute) || (DateTime.Now.Hour > startDate.Hour)) //{ //Guid campaignActivityID = new Guid(dr["CAID"].ToString()); //Kampanya aktivitesine ait listeler çekilir. DataTable marketingLists = GetMarketingList(sda); //Eğer kampanya aktivitesi altında pazarlama listesi yoksa herhangi bir işlem yapılmaz. if (marketingLists != null && marketingLists.Rows.Count > 0) { //campaignXmlFile = eFunc.BuildXml(dr); //if (!string.IsNullOrEmpty(campaignXmlFile)) //{ foreach (DataRow drList in marketingLists.Rows) { listId = new Guid(drList["ListId"].ToString()); if (listId != Guid.Empty) { //Pazarlama listesine eklenen müsteriler çekilir. DataTable customerList = eFunc.GetCustomerList(sda, listId); if (customerList != null && customerList.Rows.Count > 0) { mailList += eFunc.BuildMailList(customerList); } if (!string.IsNullOrEmpty(mailList)) { dataFile = eFunc.BuildDataFile(mailList, drList["ListName"].ToString()); if (!string.IsNullOrEmpty(dataFile)) { zipFileName = eFunc.WriteZip(dataFile, drList["ListName"].ToString()); eFunc.UploadViaSftp(zipFileName, sftpUrl, sftpUsername, sftpPassword); UpdateMarkengListStatus(listId); mailList = string.Empty; ////Kampanya aktivitesi 100000004->EuroMsg Gönderim Yapıldı olarak UPDATE Ediliyor. //SetStateRequest stateRequest = new SetStateRequest() //{ // EntityMoniker = new EntityReference("campaignactivity", campaignActivityID), // State = new OptionSetValue(1), // Status = new OptionSetValue(100000004) //}; //SetStateResponse stateResponse = (SetStateResponse)orgService.Execute(stateRequest); //Console.WriteLine("Kampanya aktivitesi Euromsg'a başarıyla gönderildi. Aktivite Id : " + campaignActivityID.ToString()); } else { Console.WriteLine("Marketing list için .txt oluşturulamadı."); logMe.Log("SendMailIntegration - Execute", "Marketing list için .txt oluşturulamadı.", TEMPEventLog.EventType.Info, "list", listId.ToString()); } } } } //} //else //{ // Console.WriteLine("Kampanya aktivitesi için XML oluşturulamadı."); // logMe.Log("SendMailIntegration - Execute", "Kampanya aktivitesi için XML oluşturulamadı.", TEMPEventLog.EventType.Info, "new_campaignactivity", dr["CAID"].ToString()); //} } else { Console.WriteLine("Kampanya aktivitesine ait pazarlama listesi bulunmamaktadır."); logMe.Log("SendMailIntegration - Execute", "Kampanya aktivitesine ait pazarlama listesi bulunmamaktadır.", TEMPEventLog.EventType.Info, "list", listId.ToString()); } //} //else //{ // Console.WriteLine("Başlangıç saati gelmediğinden dolayı kampanya aktivitesi Euromsg'a gönderilmedi."); // logMe.Log("SendMailIntegration - Execute", "Başlangıç saati gelmediğinden dolayı kampanya aktivitesi Euromsg'a gönderilmedi.", TEMPEventLog.EventType.Info, "new_campaignactivity", dr["CAID"].ToString()); //} Console.WriteLine("Kampanya aktivitesi işlemleri bitti."); //} Console.WriteLine("Gönderilmeyi bekleyen kampanya aktivitelerinin alınma işlemi sona erdi."); logMe.Log("SendMailIntegration - Execute", "Gönderilmeyi bekleyen kampanya aktivitelerinin alınma işlemi sona erdi.", TEMPEventLog.EventType.Info); } catch (Exception ex) { Console.WriteLine("İşlemler sırasında bir hata ile karşılaşıldı."); logMe.Log("SendMailIntegration - Execute", ex, TEMPEventLog.EventType.Exception); } }
public string Login() { eFunc = new EmailFunctions(); AuthorizationServiceKey = eFunc.AuthenticationEM(); return(AuthorizationServiceKey); }