public void Execute() { string campaignXmlFile = string.Empty; string smsList = string.Empty; string dataFile = string.Empty; string zipFileName = string.Empty; Guid listId = Guid.Empty; Console.WriteLine("SMS gönderim uygulaması çalıştı."); try { logMe.Log("SendSmsIntegration - 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, DATEADD(HOUR,DATEDIFF(HOUR,GETUTCDATE(),GETDATE()),CA.scheduledend) CAE, CA.[Subject] CS, CA.new_smstext MSG FROM CampaignActivity CA (NOLOCK) WHERE CA.StatusCode = 100000000 AND CA.StateCode=0 AND CA.ChannelTypeCode=3" ; sda.openConnection(Globals.ConnectionString); DataTable dtCActivity = sda.getDataTable(queryCActivity); sda.closeConnection(); Console.WriteLine("Euromessage' a iletilmeyi bekleyen kampanya aktiviteleri alındı."); logMe.Log("SendSmsIntegration - Execute", "Euromessage' a iletilmeyi bekleyen kampanya aktiviteleri alındı. Adet: " + dtCActivity.Rows.Count, TEMPEventLog.EventType.Info); #endregion | Get Campaign Activity | SmsFunctions sFunc = new SmsFunctions(); 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, campaignActivityID); //Eğer kampanya aktivitesi altında pazarlama listesi yoksa herhangi bir işlem yapılmaz. if (marketingLists != null && marketingLists.Rows.Count > 0) { campaignXmlFile = sFunc.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 = sFunc.GetCustomerList(sda, campaignActivityID, listId); if (customerList != null && customerList.Rows.Count > 0) { smsList += sFunc.BuildSmsList(customerList); } } } if (!string.IsNullOrEmpty(smsList)) { dataFile = sFunc.BuildDataFile(smsList); if (!string.IsNullOrEmpty(dataFile)) { zipFileName = sFunc.WriteZip(dataFile, campaignXmlFile); sFunc.UploadViaSftp(zipFileName, sftpUrl, sftpUsername, sftpPassword); //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(100000001) }; 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("SendSmsIntegration - Execute", "Marketing list için .txt oluşturulamadı.", TEMPEventLog.EventType.Info, "new_campaignactivity", dr["CAID"].ToString()); } } } else { Console.WriteLine("Kampanya aktivitesi için XML oluşturulamadı."); logMe.Log("SendSmsIntegration - 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("SendSmsIntegration - Execute", "Kampanya aktivitesine ait pazarlama listesi bulunmamaktadır.", TEMPEventLog.EventType.Info, "new_campaignactivity", dr["CAID"].ToString()); } //} //else //{ // Console.WriteLine("Başlangıç saati gelmediğinden dolayı kampanya aktivitesi Euromsg'a gönderilmedi."); // logMe.Log("SendSmsIntegration - Execute", "Başlangıç saati gelmediğinden dolayı kampanya aktivitesi Euromsg'a gönderilmedi. Kampanya Aktivitesi ID: " + dr["CAID"].ToString(), TEMPEventLog.EventType.Info); //} Console.WriteLine("Kampanya aktivitesi işlemleri bitti."); } Console.WriteLine("Gönderilmeyi bekleyen kampanya aktivitelerinin alınma işlemi sona erdi."); logMe.Log("SendSmsIntegration - 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("SendSmsIntegration - Execute", ex, TEMPEventLog.EventType.Exception); } }
public void Execute() { try { logMe.Log("UpdateCampaignActivity_SMS - 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..EuroMessageSmsErrorTable WHERE Error = 1 AND ActivityId = e.ActivityId )FailureCount, ( SELECT COUNT(0) FROM NEFCUSTOM_MSCRM..EuroMessageSmsTempTable WHERE Error = 0 AND ActivityId = e.ActivityId AND StatusCode!=5 )EmailCount, ( SELECT COUNT(0) FROM NEFCUSTOM_MSCRM..EuroMessageSmsTempTable WHERE Error = 0 AND StatusCode = 100000003 AND ActivityId = e.ActivityId )NoSendEmailCount, ( SELECT COUNT(0) FROM NEFCUSTOM_MSCRM..EuroMessageSmsTempTable WHERE ActivityId = e.ActivityId AND Error = 0 AND ( StatusCode = 100000001 OR StatusCode = 1 ) )ResponseWaitingCount FROM NEFCUSTOM_MSCRM..EuroMessageSmsTempTable 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(); SmsFunctions sFunc = new SmsFunctions(); 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_SMS - Execute", ex, TEMPEventLog.EventType.Exception); } } } #endregion logMe.Log("UpdateCampaignActivity_SMS - Execute", "UpdateCampaignActivity Uygulaması Bitti.Tarih : " + DateTime.Now.ToString(), TEMPEventLog.EventType.Info); } catch (Exception ex) { logMe.Log("UpdateCampaignActivity_SMS - Execute", ex, TEMPEventLog.EventType.Exception); } }
public string Login() { eFunc = new SmsFunctions(); AuthorizationServiceKey = eFunc.AuthenticationEM(); return(AuthorizationServiceKey); }
internal void Execute() { DateTime startDate; DateTime endDate; Guid campaignActivityId; Guid ownerId; Guid marketingListId; EMTempProcess emt; try { Console.WriteLine("Sms gönderim uygulaması çalıştı."); logMe.Log("CreateSms - Execute", "Sms oluşturma uygulaması başladı.", TEMPEventLog.EventType.Info); #region Periyodik gönderimler dağıtıldı durumuna çekilir. SmsFunctions sFunc = new SmsFunctions(); sFunc.TestCampaignActivity(); // sFunc.SetCampaignActivityDistributed(); #endregion #region | Get Campaign Activity | // StatusCode değeri 'Dağıtıldı' ve Kanal Tipi 'SMS' 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 = 3" ; sda.openConnection(Globals.ConnectionString); DataTable dtCActivity = sda.getDataTable(queryCActivity); sda.closeConnection(); Console.WriteLine("Gönderilmeyi bekleyen kampanya aktiviteleri alındı."); logMe.Log("CreateSms - Execute", "Gönderilmeyi bekleyen kampanya aktiviteleri alındı. Adet: " + dtCActivity.Rows.Count, TEMPEventLog.EventType.Info); #endregion | Get Campaign Activity | foreach (DataRow dr in dtCActivity.Rows) { Console.WriteLine("SMS 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(campaignActivityId); if (dtMarketingLists != null && dtMarketingLists.Rows.Count > 0) { foreach (DataRow drList in dtMarketingLists.Rows) { try { marketingListId = new Guid(drList["ListId"].ToString()); emt = new EMTempProcess(); bool result = emt.Process(campaignActivityId.ToString(), marketingListId.ToString(), ownerId.ToString(), startDate, endDate); // 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(100000000) }; SetStateResponse stateResponse = (SetStateResponse)orgService.Execute(stateRequest); } } catch (Exception ex) { logMe.Log("CreateSMS", ex, TEMPEventLog.EventType.Exception, "CampaignActivity", campaignActivityId.ToString()); continue; } } } #endregion | Process Marketing Lists | } catch (Exception) { throw; } } } catch (Exception) { throw; } }