public void Execute(IJobExecutionContext context)
        {
            Log.Info("SetKeywordsCostJob запущен!");

            Console.WriteLine("SetKeywordsCostJob was started! " + DateTime.Now);

            IQueryable <Client> clients    = _clientRep.GetAll();
            DateTime            StartDate  = new DateTime();
            DateTime            FinishDate = new DateTime();

            JobsInfo JobsInfoQuery = _jobsinfoRep.GetLastActionDateForJob(Constants.SetKeywordsCostJob);

            if (JobsInfoQuery != null)
            {
                StartDate  = JobsInfoQuery.lastactiondate.AddDays(-1);  //AddDays(-1) для учета часовых поясов
                FinishDate = DateTime.Now.ToUniversalTime().AddDays(2); //AddDays(1) для учета часовых поясов
            }
            else
            {
                if (_visitsRep.GetAll().Count() > 0)
                {
                    StartDate  = DateTime.Parse("2013-04-28");
                    FinishDate = DateTime.Now.ToUniversalTime().AddDays(2);//AddDays(1) для учета часовых поясов
                }
            }

            foreach (Client item in clients)
            {
                Console.WriteLine("SetKeywordsCostJob Клиент " + item.Name + " Время старта: " + DateTime.Now);
                Execute_KeywordsCost_Query(StartDate, FinishDate, item.LoginGoogleAnalitics, item.PasswordGoogleAnalitics, item.ids.ToString(), item.Id);
                Console.WriteLine("SetKeywordsCostJob Клиент " + item.Name + " Время финиша: " + DateTime.Now);
            }

            _jobsinfoRep.Add(new JobsInfo()
            {
                jobId = Constants.SetKeywordsCostJob, lastactiondate = DateTime.Now.AddDays(-1).ToUniversalTime(), status = true
            });
            _jobsinfoRep.Save();

            Console.WriteLine("SetKeywordsCostJob is finished! " + DateTime.Now);
        }
        public void Execute(IJobExecutionContext context)
        {
            try
            {
                //  Log.Info("GetGoogleAnalyticsDataJob запущен!");

                Console.WriteLine("GetGoogleAnalyticsDataJob is started....." + DateTime.Now.ToString());

                IQueryable <Client> clients    = _clientRep.GetAll();
                DateTime            StartDate  = new DateTime();
                DateTime            FinishDate = new DateTime();

                JobsInfo JobsInfoQuery = _jobsinfoRep.GetLastActionDateForJob(Constants.GetGoogleAnalyticsDataJob);
                if (JobsInfoQuery != null)
                {
                    StartDate  = /*DateTime.Parse("2013-04-01");*/ JobsInfoQuery.lastactiondate.AddDays(-1); //AddDays(-1) для учета часовых поясов
                    FinishDate = DateTime.Now.ToUniversalTime().AddDays(2);                                  //AddDays(1) для учета часовых поясов
                }
                else
                {
                    if (_visitsRep.GetAll().Count() > 0)
                    {
                        StartDate  = DateTime.Parse("2012-05-01");
                        FinishDate = DateTime.Now.ToUniversalTime().AddDays(2);//AddDays(1) для учета часовых поясов
                    }
                }

                foreach (Client item in clients)
                {
                    Console.WriteLine("GetGoogleAnalyticsDataJob Клиент " + item.Name + " Время старта: " + DateTime.Now);
                    if (item.Id != 6)
                    {
                        if (!(String.IsNullOrEmpty(item.LoginGoogleAnalitics)) && (!String.IsNullOrEmpty(item.PasswordGoogleAnalitics)) && (!String.IsNullOrEmpty(item.ids.ToString())) && (item.ids != 0))
                        {
                            Execute_NonPaidSearchTraffic_Query(StartDate, FinishDate, item.LoginGoogleAnalitics, item.PasswordGoogleAnalitics, item.ids.ToString(), item.Id);

                            Execute_PaidSearchTraffic_Query(StartDate, FinishDate, item.LoginGoogleAnalitics, item.PasswordGoogleAnalitics, item.ids.ToString(), item.Id);

                            Execute_ReferralTraffic_Query(StartDate, FinishDate, item.LoginGoogleAnalitics, item.PasswordGoogleAnalitics, item.ids.ToString(), item.Id);

                            Execute_DirectTraffic_Query(StartDate, FinishDate, item.LoginGoogleAnalitics, item.PasswordGoogleAnalitics, item.ids.ToString(), item.Id);
                        }
                    }
                    else
                    {
                        if (StartDate >= DateTime.Parse("2013-05-25"))    //для клиента 6 выполняем после 25-го числа
                        {
                            if (!(String.IsNullOrEmpty(item.LoginGoogleAnalitics)) && (!String.IsNullOrEmpty(item.PasswordGoogleAnalitics)) && (!String.IsNullOrEmpty(item.ids.ToString())) && (item.ids != 0))
                            {
                                Execute_NonPaidSearchTraffic_Query(StartDate, FinishDate, item.LoginGoogleAnalitics, item.PasswordGoogleAnalitics, item.ids.ToString(), item.Id);

                                Execute_PaidSearchTraffic_Query(StartDate, FinishDate, item.LoginGoogleAnalitics, item.PasswordGoogleAnalitics, item.ids.ToString(), item.Id);

                                Execute_ReferralTraffic_Query(StartDate, FinishDate, item.LoginGoogleAnalitics, item.PasswordGoogleAnalitics, item.ids.ToString(), item.Id);

                                Execute_DirectTraffic_Query(StartDate, FinishDate, item.LoginGoogleAnalitics, item.PasswordGoogleAnalitics, item.ids.ToString(), item.Id);
                            }
                        }
                    }
                    Console.WriteLine("GetGoogleAnalyticsDataJob Клиент " + item.Name + " Время финиша: " + DateTime.Now);
                }

                _jobsinfoRep.Add(new JobsInfo()
                {
                    jobId = Constants.GetGoogleAnalyticsDataJob, lastactiondate = DateTime.Now.AddDays(-1).ToUniversalTime(), status = true
                });
                _jobsinfoRep.Save();

                //   Log.Info("GetGoogleAnalyticsDataJob успешно выполнен!");
                Console.WriteLine("GetGoogleAnalyticsDataJob is finished....." + DateTime.Now.ToString());
            }
            catch (Exception ex)
            {
                while (ex.InnerException != null)
                {
                    ex = ex.InnerException;
                }
                //Log.Error(String.Format(@"Message: {0}, Source: {1}, TargetSite: {2}, Trace: {3} ", ex.Message, ex.Source, ex.TargetSite, ex.StackTrace));
                //  Console.WriteLine("GetGoogleAnalyticsDataJob is running with error....." + DateTime.Now.ToString());
                //  Console.WriteLine(String.Format(@"Message: {0}, Source: {1}, TargetSite: {2}, Trace: {3} ", ex.Message, ex.Source, ex.TargetSite, ex.StackTrace));
                throw ex;
            }
        }