Beispiel #1
0
        public bool Process(string _listId)
        {
            bool flag = false;

            try
            {
                //caId = _caId;
                //ownerId = _ownerId;
                //start = _start;
                //end = _end;
                listId    = _listId;
                startDate = DateTime.Now;

                Console.WriteLine("EM Process Uygulaması Başladı..." + startDate.ToString());
                logMe.Log("EMTempProcess - Process", "EM Process Başladı:" + startDate.ToString(), TEMPEventLog.EventType.Info);

                if (IsListDynamic(listId))
                {
                    ColumnSet cols = new ColumnSet(new string[] { "query" });

                    Entity list         = orgService.Retrieve("list", new Guid(_listId), cols);
                    string dynamicQuery = list.Attributes["query"].ToString();
                    var    countQuery   = dynamicQuery;

                    Console.SetCursorPosition(0, 1);
                    Console.WriteLine("Fetch XML alındı. Zaman:" + (DateTime.Now - startDate).ToString());
                    logMe.Log("EMTempProcess - Process", "Fetch XML Alındı:" + (DateTime.Now - startDate).ToString(), TEMPEventLog.EventType.Info);
                    var memberCountResult = FetchAll(countQuery);
                }
                else
                {
                    InsertStaticListToTempTable();
                }

                if (conn.State != ConnectionState.Open)
                {
                    conn.Open();
                }

                //string sqlClearTemp = @"exec NEFCUSTOM_MSCRM..sp_ClearTempEMailTable '{0}'";
                //Console.WriteLine("Hata durumları güncelleniyor...");
                //sda.ExecuteNonQuery(string.Format(sqlClearTemp, caId.ToString()));
                Console.WriteLine("Hata durumları güncellendi...    ");
                Console.WriteLine("İşlem Tamamlandı.Zaman:" + (DateTime.Now - startDate).ToString());
                logMe.Log("EMTempProcess - Process", "İşlem Tamamlandı :" + (DateTime.Now - startDate).ToString(), TEMPEventLog.EventType.Info);
                flag = true;

                if (conn.State != ConnectionState.Closed)
                {
                    conn.Close();
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(flag);
        }
Beispiel #2
0
        public string BuildXml(DataRow drActivity)
        {
            string file = string.Empty;

            try
            {
                StringBuilder campaignXml = new StringBuilder();

                campaignXml.AppendLine("<euro.message>");
                // if something goes wrong with data upload and campaign creation, this email address will be notified.
                campaignXml.Append("<NOTIFICATION_EMAIL>").Append("*****@*****.**").AppendLine("</NOTIFICATION_EMAIL>");
                campaignXml.AppendLine("<CAMPAIGN type=\"EMAIL\">");
                campaignXml.Append("<CAMP_ID>").Append(drActivity["CAID"].ToString().ToUpper().Replace("-", "")).AppendLine("</CAMP_ID>");
                campaignXml.Append("<DELIVERY_DATE>").Append(Convert.ToDateTime(drActivity["CAS"]).ToString("yyyy-MM-dd HH:mm:ss")).Append("</DELIVERY_DATE>");
                campaignXml.Append("<DEMOGRAFIC_INFO>").Append("</DEMOGRAFIC_INFO>");
                campaignXml.Append("<EXPIRE_DATE>").Append("</EXPIRE_DATE>");
                campaignXml.Append("<REPORT_ADMINS>").Append("</REPORT_ADMINS>");
                campaignXml.AppendLine("<PDF_REPORT enabled=\"false\">");
                campaignXml.AppendLine("<FIRST_REPORT enabled=\"false\">");
                campaignXml.AppendLine("<EMAILS/>");
                campaignXml.AppendLine("<DAY_AFTER/>");
                campaignXml.AppendLine("<LANG_ID/>");
                campaignXml.AppendLine("</FIRST_REPORT>");
                campaignXml.AppendLine("<SECOND_REPORT enabled=\"false\">");
                campaignXml.AppendLine("<EMAILS/>");
                campaignXml.AppendLine("<DAY_AFTER/>");
                campaignXml.AppendLine("<LANG_ID/>");
                campaignXml.AppendLine("</SECOND_REPORT>");
                campaignXml.AppendLine("</PDF_REPORT>");
                campaignXml.AppendLine("</CAMPAIGN>");
                campaignXml.AppendLine("</euro.message>");

                // Build file from DataTable
                string workingDirectory = ConfigurationManager.AppSettings["Working.Directory"].ToString() + "\\";
                Directory.CreateDirectory(workingDirectory);
                file = workingDirectory + DateTime.Now.ToString("yyyy-MM-dd hh-mm-ss") + ".xml";
                StreamWriter xmlFileSW = new StreamWriter(file, false, System.Text.Encoding.GetEncoding(fileEncoding));
                xmlFileSW.AutoFlush = true;
                xmlFileSW.Write(campaignXml.ToString());
                xmlFileSW.Close();
                xmlFileSW = null;

                return(file);
            }
            catch (Exception ex)
            {
                logMe.Log("SendMailIntegration - Execute", ex, TEMPEventLog.EventType.Exception, "new_campaignactivity", drActivity["CAID"].ToString());
            }

            return(file);
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
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);
            }
        }
Beispiel #5
0
        public void ExecuteResponse()
        {
            List <string>  filesOnFtp = new List <string>();
            FileStream     fs;
            StreamReader   sr;
            FtpWebRequest  req;
            FtpWebResponse res;

            #region |   Result Processing   |

            #region |   Get Files on FTP   |

            try
            {
                logMe.Log("GetSmsResponse - ExecuteResponse", "GetSmsResponse Uygulaması Başladı.Tarih : " + DateTime.Now.ToString(), TEMPEventLog.EventType.Info);

                req             = FtpWebRequest.Create(ftpAdres) as FtpWebRequest;
                req.Credentials = new NetworkCredential(ftpUser, ftpPassword);
                req.Method      = WebRequestMethods.Ftp.ListDirectoryDetails;
                req.UsePassive  = true;
                req.UseBinary   = true;
                req.KeepAlive   = false;
                res             = req.GetResponse() as FtpWebResponse;

                sr = new StreamReader(res.GetResponseStream());

                while (sr.BaseStream.CanRead)
                {
                    System.Console.WriteLine("Okuma işlemi başladı");
                    string fileName = sr.ReadLine();

                    if (fileName != null)
                    {
                        int index = fileName.IndexOf("PM");
                        fileName = fileName.Substring(index + 2);

                        string[] strArray = fileName.Split(' ');
                        string   filesOr  = strArray[strArray.Length - 1];
                        if (Path.GetExtension(filesOr).Equals(".zip"))
                        {
                            filesOnFtp.Add(filesOr);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                logMe.Log("GetSmsResponse - Execute", "Exception.Message : FTP üzerindeki dosyalara ulaşılamadı.\n\n" +
                          "Exception.DetailedMessage : " + ex.Message, TEMPEventLog.EventType.Exception);
            }

            #endregion

            #region |   Delete Files on FTP Older Than 1 Week   |

            foreach (string fileName in filesOnFtp)
            {
                try
                {
                    req             = FtpWebRequest.Create(ftpAdres + "/" + fileName) as FtpWebRequest;
                    req.Credentials = new NetworkCredential(ftpUser, ftpPassword);
                    req.Method      = WebRequestMethods.Ftp.GetDateTimestamp;
                    req.Proxy       = new WebProxy();

                    res = req.GetResponse() as FtpWebResponse;

                    if (res.LastModified < DateTime.Now.AddDays(-7))
                    {
                        req             = FtpWebRequest.Create(ftpAdres + "/" + fileName) as FtpWebRequest;
                        req.Credentials = new NetworkCredential(ftpUser, ftpPassword);
                        req.Method      = WebRequestMethods.Ftp.DeleteFile;
                        req.Proxy       = new WebProxy();

                        res = req.GetResponse() as FtpWebResponse;
                    }
                }
                catch (Exception ex)
                {
                    logMe.Log("GetSmsResponse - Execute", "Exception.Message : FTP üzerinden dosya silme işlemi yapılamadı.\n\n" +
                              "Exception.DetailedMessage : " + ex.Message, TEMPEventLog.EventType.Exception);
                }
            }

            #endregion |   Delete Files on FTP Older Than 1 Week   |

            #region |   Get Required Files To Local And Send Results To CRM   |

            //Daha önceden yapılan son periyot süresine dahil olan bütün istekler veritabanından çekilir.
            DataTable requestCampaignFromTempTable = GetRequestedCampaignActivityFromTempTable(orgService);

            for (int i = 0; i < requestCampaignFromTempTable.Rows.Count; i++)
            {
                string item = requestCampaignFromTempTable.Rows[i]["ConversationID"].ToString();
                Guid   campaignActivityID = new Guid(requestCampaignFromTempTable.Rows[i]["CampaignActivityID"].ToString());

                try
                {
                    #region |   Get Files From Nef Ftp    |

                    string completePath = zipPath + "\\data.csv.tmp";

                    if (System.IO.File.Exists(completePath))
                    {
                        System.IO.File.Delete(completePath);
                    }

                    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpAdres + "/" + item + ".zip");
                    request.Method = WebRequestMethods.Ftp.DownloadFile;

                    request.Credentials = new NetworkCredential(ftpUser, ftpPassword);

                    FtpWebResponse response = (FtpWebResponse)request.GetResponse();

                    Stream responseStream = response.GetResponseStream();

                    FileStream file   = File.Create(zipPath + "\\" + item + ".zip");
                    byte[]     buffer = new byte[32 * 1024];
                    int        read;

                    while ((read = responseStream.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        file.Write(buffer, 0, read);
                    }

                    file.Close();
                    responseStream.Close();
                    response.Close();

                    #endregion |   Get Files From Nef Ftp    |

                    #region |   Delete Received File From TempTable   |

                    // (18.03.2014) Artık mail sonuçları sürekli kontrol edileceği için bu tablodaki datalar silinmeyecek. Okunurken de periyot süresi içerisinde bulunan datalar okunacak.

                    //string deleteQuery = "DELETE NEFCUSTOM_MSCRM..crmTempMailResponseTable WHERE ConversationID=@ConversationID";

                    //SqlDataAccess sdaDelete = new SqlDataAccess();
                    //sda.openConnection(crmService.SQLConnection);
                    //SqlParameter[] parametersInsert = {
                    //    new SqlParameter("@ConversationID", item)
                    //};

                    //sda.ExecuteNonQuery(deleteQuery, parametersInsert);


                    #endregion |    Delete Received File From TempTable   |

                    #region |   Extract Zip File    |

                    ZipFile zipFile = ZipFile.Read(zipPath + "\\" + item + ".zip");
                    zipFile.Password = "******";
                    zipFile.ExtractAll(zipPath, ExtractExistingFileAction.OverwriteSilently);

                    fs = new FileStream(zipPath + "\\data.csv", FileMode.Open);
                    sr = new StreamReader(fs);

                    bool isHeader = true;
                    while (!sr.EndOfStream)
                    {
                        string[] values = sr.ReadLine().Split(';');
                        if (!isHeader)
                        {
                            string gsm          = values[0].Replace(".", "");
                            string status       = values[2];
                            string lastChange   = values[3];
                            string deliveryDesc = values[4];

                            CreateSmsRecord(campaignActivityID, gsm, status, sda, orgService);
                        }
                        else
                        {
                            isHeader = false;
                        }
                    }

                    sr.Close();
                    fs.Close();
                    //res.Close();
                    //res2.Close();

                    #endregion |   Extract Zip File    |
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                    logMe.Log("GetSmsResponse - Execute", "Exception.Message : Dosya bulunamadı, Zip dosya açılamadı veya sonuç CRM'e işlenemedi. \n\n" +
                              "Exception.DetailedMessage : " + ex.Message, TEMPEventLog.EventType.Exception, "CampaignActivity", item);
                    continue;
                }
                finally
                {
                    string completePath = zipPath + "\\data.csv.tmp";

                    if (System.IO.File.Exists(completePath))
                    {
                        System.IO.File.Delete(completePath);
                    }
                }
            }

            #endregion

            #endregion
            logMe.Log("GetSmsResponse - ExecuteResponse", "GetSmsResponse Uygulaması Bitti.Tarih : " + DateTime.Now.ToString(), TEMPEventLog.EventType.Info);
        }
Beispiel #6
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;
            }
        }
Beispiel #7
0
        public ProcessResult AddToSendLists(Guid campaignActivityId, string AuthenticationServiceKey, string listName, IOrganizationService service)
        {
            try
            {
                bool sonuc = false;

                #region |   Query Contact   |

                string queryList = @"SELECT
	                                C.FirstName [FirstName],
	                                C.LastName [LastName],
	                                C.mobilephone [MobilePhone],
                                    C.emailaddress1 [EmailAddress],
	                                C.ContactId [ContactId]
                                FROM
	                                Contact C WITH(NOLOCK)
                                WHERE
	                                C.StateCode = 0
                                AND
	                                C.birthdate IS NOT NULL
                                AND
	                                LEFT((RIGHT(CONVERT(VARCHAR(10), dbo.fn_UTCToTzSpecificLocalTime(C.birthdate,-120,-60,0,3,5,3,0,0,0,1,0,0,1,5,4,0,0,0,0), 103), 10)), 5) = LEFT((RIGHT(CONVERT(VARCHAR(10), GETDATE(), 103), 10)), 5)
                                AND
	                                C.donotphone = 0
                                AND
	                                C.mobilephone IS NOT NULL
                                AND
	                                C.new_invalidmobilephone = 0 
                                AND
	                                C.emailaddress1 IS NOT NULL"    ;
                sda.openConnection(Globals.ConnectionString);
                DataTable dt = sda.getDataTable(queryList, new SqlParameter("@campaignActivityId", campaignActivityId));
                sda.closeConnection();
                #endregion |   Query Contact   |

                List <sendlist.live.EmKeyValue[]> demographicDatas = new List <sendlist.live.EmKeyValue[]>();
                List <SmsDetail> smsDetails = new List <SmsDetail>();

                logMe.Log("SmsFunctions - AddToSendLists", "Listedeki kişi sayısı: " + dt.Rows.Count.ToString() + ", Aktivite ID : " + campaignActivityId, TEMPEventLog.EventType.Info);

                int counter = 0;

                foreach (DataRow dr in dt.Rows)
                {
                    Console.WriteLine("Sayaç:" + counter.ToString());

                    string firstName           = dr["FirstName"] != DBNull.Value ? dr["FirstName"].ToString() : "";
                    string lastName            = dr["LastName"] != DBNull.Value ? dr["LastName"].ToString() : "";
                    string phoneNumber         = dr["MobilePhone"] != DBNull.Value ? dr["MobilePhone"].ToString() : "";
                    string customerId          = dr["ContactId"] != DBNull.Value ? dr["ContactId"].ToString() : "";
                    string customermailaddress = dr["EmailAddress"] != DBNull.Value ? dr["EmailAddress"].ToString() : "";

                    //Eğer Contact üzerindeki tüm EPosta alanları boş ise..
                    if (phoneNumber == "-1")
                    {
                        continue;
                    }

                    sendlist.live.EmKeyValue[] demographicData =
                    {
                        new sendlist.live.EmKeyValue()
                        {
                            Key = "EMAIL", Value = customermailaddress
                        },
                        new sendlist.live.EmKeyValue()
                        {
                            Key = "Adınız", Value = firstName
                        },
                        new sendlist.live.EmKeyValue()
                        {
                            Key = "Soyadınız", Value = lastName
                        },
                        new sendlist.live.EmKeyValue()
                        {
                            Key = "Cep_Telefonunuz", Value = phoneNumber
                        },
                        new sendlist.live.EmKeyValue()
                        {
                            Key = "CustomerId", Value = customerId
                        }
                    };

                    demographicDatas.Add(demographicData);
                    counter++;
                }

                int packetCount = 0;

                Console.WriteLine("Kişi Sayısı:" + demographicDatas.Count + " bir tuşa basınız");

                if (demographicDatas.Count > 0)
                {
                    packetCount = demographicDatas.Count / 2000;
                }

                Console.WriteLine("Paket Sayısı:" + packetCount.ToString() + " Devam etmek için tuşa basınız");

                List <BulkDetailedResult> resultList = new List <BulkDetailedResult>();

                for (int i = 0; i <= packetCount; i++)
                {
                    Console.WriteLine("Paket Sayısı:" + demographicDatas.Skip(2000 * i).Take(2000).ToArray().Length.ToString());
                    BulkDetailedResult[] results;
                    SendList             sendListService = new SendList();
                    sendListService.Timeout = 10000000;
                    Console.WriteLine("Toplu gönderim yapılacak.Bir tuşa basınız.");

                    EmSendListResult result = sendListService.AddBulk(AuthenticationServiceKey, "CRM", listName, "EMAIL", demographicDatas.Skip(2000 * i).Take(2000).ToArray(), true, out results);

                    if (result.Code == "00")
                    {
                        resultList.AddRange(results);
                        Console.WriteLine(i.ToString() + ". Paket Gönderildi.Bir Tuşa Basınız.");
                    }
                    else
                    {
                        Console.WriteLine("Hata:" + result.DetailedMessage);
                    }
                }

                if (resultList.Count > 0)
                {
                    sonuc = true;
                    Console.WriteLine("Kampanya Gönderildi. Adet:" + resultList.Count.ToString());
                }
                else
                {
                    return(new ProcessResult(false, "Hata", "Liste EuroMsg tarafına iletilemedi."));
                }

                if (sonuc == true)
                {
                    return(new ProcessResult(true, "", "00"));
                }
                else
                {
                    return(new ProcessResult(false, "", "99"));
                }
            }
            catch (Exception ex)
            {
                return(new ProcessResult(false, "", ex.StackTrace));
            }
        }
Beispiel #8
0
        public void Execute()
        {
            try
            {
                logMe.Log("GetFilteredMembers - Execute", "GetFilteredMembers Uygulaması Başladı.Tarih : " + DateTime.Now.ToString(), TEMPEventLog.EventType.Info);

                Console.WriteLine("Üye filtreleme işlemleri başladı.");
                string authentication = eFunc.AuthenticationEM();

                //Daha önce yapılan istekler veritabanından alınır.
                DataTable requested = GetRequestedMembersFromTempTable();

                int requestCount = 0;
                if (requested != null)
                {
                    requestCount = requested.Rows.Count;
                }
                else
                {
                    requestCount = 0;
                }

                logMe.Log("GetFilteredMembers - Execute", "Daha önce yapılan istekler veritabanından alındı. Adet : " + requestCount + ". Tarih : " + DateTime.Now.ToString(), TEMPEventLog.EventType.Info);

                if (requested != null && requested.Rows.Count > 0)
                {
                    //Her bir istek için veritabanına kayıt edilen ID ile FTP'den dosya alınır.
                    foreach (DataRow dr in requested.Rows)
                    {
                        try
                        {
                            string conversationID = dr["ConversationID"].ToString();
                            int    type           = Convert.ToInt32(dr["Type"]);

                            //Type = 1 ise; üyelikten ayrılmak isteyen kişilerin izinleri değiştirilir.
                            //Type = 2 ise; mail adresi sistemden kaldırılır.
                            logMe.Log("GetFilteredMembers - Execute", "GetMember methodu çağırılıyor. Tarih : " + DateTime.Now.ToString(), TEMPEventLog.EventType.Info);
                            GetMember(authentication, conversationID, type);

                            //İşlem yapılan istek bilgisi veritabanından silinir.
                            logMe.Log("GetFilteredMembers - Execute", "DeleteFromTempTable methodu çağırılıyor. Tarih : " + DateTime.Now.ToString(), TEMPEventLog.EventType.Info);
                            DeleteFromTempTable(conversationID);
                        }
                        catch (Exception ex)
                        {
                            logMe.Log("GetFilteredMembers - Execute", ex, TEMPEventLog.EventType.Exception);
                            continue;
                        }
                    }
                }
                else
                {
                    //Üyelikten kendi isteği ile ayrılmış kişileri getirir.
                    string passiveConversationID = PassiveMembers(authentication, "X", "Y");
                    InsertTempTable(passiveConversationID, 1);

                    //Geçersiz mail adreslerini getirir.
                    string wrongMailConversationID = PassiveMembers(authentication, "A", "N");
                    InsertTempTable(wrongMailConversationID, 2);
                }

                Console.WriteLine("Üye filtreleme işlemleri bitti.");
                eFunc.LogoutEM(authentication);

                logMe.Log("GetFilteredMembers - Execute", "GetFilteredMembers Uygulaması Bitti.Tarih : " + DateTime.Now.ToString(), TEMPEventLog.EventType.Info);
            }
            catch (Exception ex)
            {
                logMe.Log("GetFilteredMembers - Execute", "Execute işleminde hata alındı. Hata mesajı = " + ex.Message, TEMPEventLog.EventType.Exception);
            }
        }
Beispiel #9
0
        public void Execute()
        {
            List <string>  filesOnFtp = new List <string>();
            FileStream     fs;
            StreamReader   sr;
            FtpWebRequest  req;
            FtpWebResponse res;

            #region |   Result Processing   |

            #region |   Get Files on FTP   |

            try
            {
                logMe.Log("GetEmailResponse - Execute", "GetEmailResponse Uygulaması Başladı.Tarih : " + DateTime.Now.ToString(), TEMPEventLog.EventType.Info);

                req             = FtpWebRequest.Create(ftpAdres) as FtpWebRequest;
                req.Credentials = new NetworkCredential(ftpUser, ftpPassword);
                req.Method      = WebRequestMethods.Ftp.ListDirectoryDetails;
                req.UsePassive  = true;
                req.UseBinary   = true;
                req.KeepAlive   = false;
                res             = req.GetResponse() as FtpWebResponse;

                sr = new StreamReader(res.GetResponseStream());


                while (sr.BaseStream.CanRead)
                {
                    System.Console.WriteLine("Okuma işlemi başladı");
                    string fileName = sr.ReadLine();

                    if (fileName != null)
                    {
                        int index = fileName.IndexOf("PM");
                        fileName = fileName.Substring(index + 2);

                        string[] strArray = fileName.Split(' ');
                        filesOnFtp.Add(strArray[strArray.Length - 1]);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                logMe.Log("GetEmailResponse - Execute", "Exception.Message : FTP üzerindeki dosyalara ulaşılamadı.\n\n" +
                          "Exception.DetailedMessage : " + ex.Message, TEMPEventLog.EventType.Exception);
            }

            #endregion

            #region |   Delete Files on FTP Older Than 1 Week   |

            foreach (string fileName in filesOnFtp)
            {
                try
                {
                    req             = FtpWebRequest.Create(ftpAdres + "/" + fileName) as FtpWebRequest;
                    req.Credentials = new NetworkCredential(ftpUser, ftpPassword);
                    req.Method      = WebRequestMethods.Ftp.GetDateTimestamp;
                    req.Proxy       = new WebProxy();

                    res = req.GetResponse() as FtpWebResponse;

                    if (res.LastModified < DateTime.Now.AddDays(-7))
                    {
                        req             = FtpWebRequest.Create(ftpAdres + "/" + fileName) as FtpWebRequest;
                        req.Credentials = new NetworkCredential(ftpUser, ftpPassword);
                        req.Method      = WebRequestMethods.Ftp.DeleteFile;
                        req.Proxy       = new WebProxy();

                        res = req.GetResponse() as FtpWebResponse;
                    }
                }
                catch (Exception ex)
                {
                    logMe.Log("GetEmailResponse - Execute", "Exception.Message : FTP üzerinden dosya silme işlemi yapılamadı.\n\n" +
                              "Exception.DetailedMessage : " + ex.Message, TEMPEventLog.EventType.Exception);
                }
            }

            #endregion |   Delete Files on FTP Older Than 1 Week   |

            #region |   Get Required Files To Local And Send Results To CRM   |

            //Daha önceden yapılan son periyot süresine dahil olan bütün istekler veritabanından çekilir.
            DataTable requestCampaignFromTempTable = GetRequestedCampaignActivityFromTempTable(orgService);

            for (int i = 0; i < requestCampaignFromTempTable.Rows.Count; i++)
            {
                string item = requestCampaignFromTempTable.Rows[i]["ConversationID"].ToString();
                Guid   campaignActivityID = new Guid(requestCampaignFromTempTable.Rows[i]["CampaignActivityID"].ToString());

                try
                {
                    #region |   Get Files From Nef Ftp    |

                    string completePath = zipPath + "\\data.csv.tmp";

                    if (System.IO.File.Exists(completePath))
                    {
                        System.IO.File.Delete(completePath);
                    }

                    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpAdres + "/" + item + ".zip");
                    request.Method = WebRequestMethods.Ftp.DownloadFile;

                    request.Credentials = new NetworkCredential(ftpUser, ftpPassword);

                    FtpWebResponse response = (FtpWebResponse)request.GetResponse();

                    Stream responseStream = response.GetResponseStream();

                    FileStream file   = File.Create(zipPath + "\\" + item + ".zip");
                    byte[]     buffer = new byte[32 * 1024];
                    int        read;

                    while ((read = responseStream.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        file.Write(buffer, 0, read);
                    }

                    file.Close();
                    responseStream.Close();
                    response.Close();

                    #endregion |   Get Files From Nef Ftp    |

                    #region |   Extract Zip File    |

                    ZipFile zipFile = ZipFile.Read(zipPath + "\\" + item + ".zip");
                    zipFile.Password = "******";
                    zipFile.ExtractAll(zipPath, ExtractExistingFileAction.OverwriteSilently);

                    fs = new FileStream(zipPath + "\\data.csv", FileMode.Open);
                    sr = new StreamReader(fs);

                    bool isHeader = true;
                    while (!sr.EndOfStream)
                    {
                        string[] values = sr.ReadLine().Split(';');
                        if (!isHeader)
                        {
                            string email          = values[0];
                            string status         = values[1];
                            string lastChangeTime = values[2];
                            string isMarkedSpam   = values[3];
                            string isClicked      = values[4];

                            CreateEmailRecord(campaignActivityID, email, status, sda, orgService);
                        }
                        else
                        {
                            isHeader = false;
                        }
                    }

                    sr.Close();
                    fs.Close();

                    #endregion |   Extract Zip File    |
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                    logMe.Log("GetEmailResponse Execute", "Exception.Message : Dosya bulunamadı, Zip dosya açılamadı veya sonuç CRM'e işlenemedi. \n\n" +
                              "Exception.DetailedMessage : " + ex.Message, TEMPEventLog.EventType.Exception, "CampaignActvity", item);
                    continue;
                }
                finally
                {
                    string completePath = zipPath + "\\data.csv.tmp";

                    if (System.IO.File.Exists(completePath))
                    {
                        System.IO.File.Delete(completePath);
                    }
                }
            }

            #endregion

            #endregion

            #region |   Result Requesting   |

            Login();

            DataTable campaignActivities = GetCampaignIdsToBeRequested(sda);

            if (campaignActivities != null && campaignActivities.Rows.Count > 0)
            {
                foreach (DataRow dr in campaignActivities.Rows)
                {
                    string campaignActivityID = dr["CAID"].ToString();

                    CreateRequest(campaignActivityID, orgService);
                }
            }

            Logout();

            #endregion

            logMe.Log("GetEmailResponse - Execute", "GetEmailResponse Uygulaması Bitti.Tarih : " + DateTime.Now.ToString(), TEMPEventLog.EventType.Info);
        }
Beispiel #10
0
        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);

                SmsFunctions sFunc = new SmsFunctions();

                Console.WriteLine("Kampanya aktivitesi işlemleri başladı.");

                //if ((DateTime.Now.Hour == startDate.Hour && DateTime.Now.Minute >= startDate.Minute) || (DateTime.Now.Hour > startDate.Hour))
                //{
                //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)
                {
                    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, listId);
                            Console.WriteLine("Data Alındı");
                            if (customerList != null && customerList.Rows.Count > 0)
                            {
                                smsList += sFunc.BuildSmsList(customerList);
                            }
                            Console.WriteLine("Sms Listsi oluşturuldu.");
                            if (!string.IsNullOrEmpty(smsList))
                            {
                                dataFile = sFunc.BuildDataFile(smsList, drList["ListName"].ToString());
                                smsList  = string.Empty;
                                Console.WriteLine(customerList.Rows.Count);

                                if (!string.IsNullOrEmpty(dataFile))
                                {
                                    zipFileName = sFunc.WriteZip(dataFile, drList["ListName"].ToString());
                                    sFunc.UploadViaSftp(zipFileName, sftpUrl, sftpUsername, sftpPassword);


                                    UpdateMarkengListStatus(listId);
                                }
                                else
                                {
                                    Console.WriteLine("Marketing list için .txt oluşturulamadı.");
                                    logMe.Log("SendSmsIntegration - Execute", "Marketing list için .txt oluşturulamadı.", TEMPEventLog.EventType.Info, "List", listId.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", listId.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);
            }
        }
Beispiel #11
0
        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;
            }
        }
Beispiel #12
0
        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);

                Console.WriteLine("SMS oluşturma işlemleri başladı.");

                try
                {
                    #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)
                        {
                            try
                            {
                                marketingListId = new Guid(drList["ListId"].ToString());
                                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("CreateSMS", ex, TEMPEventLog.EventType.Exception, ":List", drList["ListId"].ToString());
                                continue;
                            }
                        }
                    }
                    #endregion |   Process Marketing Lists    |
                }
                catch (Exception)
                {
                    throw;
                }
            }
            catch (Exception)
            {
                throw;
            }
        }