Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
 public string Login()
 {
     eFunc = new EmailFunctions();
     AuthorizationServiceKey = eFunc.AuthenticationEM();
     return(AuthorizationServiceKey);
 }