Exemplo n.º 1
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
                                    FROM
	                                    CampaignActivity CA (NOLOCK)
                                    WHERE
	                                    CA.StatusCode = 100000003 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)
                {
                    smsList = string.Empty;
                    string subject = string.Empty;
                    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());
                    if (dr["CS"] != DBNull.Value)
                    {
                        subject = dr["CS"].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 = 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, listId);

                                    if (customerList != null && customerList.Rows.Count > 0)
                                    {
                                        smsList += sFunc.BuildSmsList(customerList);
                                    }
                                }
                            }

                            if (!string.IsNullOrEmpty(smsList))
                            {
                                dataFile = sFunc.BuildDataFile(smsList, subject);

                                if (!string.IsNullOrEmpty(dataFile))
                                {
                                    zipFileName = sFunc.WriteZip(dataFile, subject);
                                    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(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("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);
            }
        }
Exemplo n.º 2
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);
            }
        }