///<Summary> /// Gets the answer ///</Summary> public void Execute(IJobExecutionContext context) { try { DateTime DT_test = DateTime.Now.ToUniversalTime(); CallTrackingDBContext _db = new CallTrackingDBContext(); string interval = System.Configuration.ConfigurationManager.AppSettings["interval"].ToString(); using (MySqlConnection objConn = new MySqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CallTrackingDBContext"].ConnectionString)) { objConn.Open(); MySqlCommand objVisitorDeactivate = new MySqlCommand("VisitorDeactivate", objConn); objVisitorDeactivate.CommandType = CommandType.StoredProcedure; objVisitorDeactivate.Parameters.Add("@interval_", MySqlDbType.String).Value = interval; objVisitorDeactivate.ExecuteNonQuery(); objConn.Close(); } using (MySqlConnection objConn = new MySqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CallTrackingDBContext"].ConnectionString)) { objConn.Open(); MySqlCommand objVisitorDeactivate = new MySqlCommand("VisitorDeactivate", objConn); objVisitorDeactivate.CommandType = CommandType.StoredProcedure; objVisitorDeactivate.Parameters.Add("@interval_", MySqlDbType.String).Value = interval; objVisitorDeactivate.ExecuteNonQuery(); objConn.Close(); } _db.Database.Connection.Close(); Log.Info("VisitoirDeactivateJob запущен!"); Log.Info("VisitoirDeactivateJob успешно выполнен!"); Console.WriteLine("VisitoirDeactivateJob is running....." + DateTime.Now.ToString()); } catch (Exception ex) { Log.Error(String.Format(@"Message: {0}, Source: {1}, TargetSite: {2}, Trace: {3} ", ex.Message, ex.Source, ex.TargetSite, ex.StackTrace)); Console.WriteLine("VisitoirDeactivateJob 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)); } }
///<Summary> /// Gets the answer ///</Summary> public void Execute(IJobExecutionContext context) { try { using (CallTrackingDBContext _db = new CallTrackingDBContext()) { Log.Info("SetCallInfoJob запущен!"); //получаем дату и время последнего запуска Job-а string date = ""; JobsInfo JobsInfoQuery = _jobsinfoRep.GetLastActionDateForJob(Constants.SetCallInfoJob);//_db.jobsInfo.FirstOrDefault(t => t.job.Id == Constants.SetCallInfoJob); if (JobsInfoQuery !=null) { //date = JobsInfoQuery.lastactiondate.ToString("YYYY-M-dd hh:"); date = JobsInfoQuery.lastactiondate.Year + "-" + JobsInfoQuery.lastactiondate.Month + "-" + JobsInfoQuery.lastactiondate.Day + " " + JobsInfoQuery.lastactiondate.Hour + ":" + JobsInfoQuery.lastactiondate.Minute + ":" + JobsInfoQuery.lastactiondate.Second; } else //если Job не запускался, то делаем работу за весь период { DateTime calldate = DateTime.Parse("2012-05-01"); date = calldate.Year + "-" + calldate.Month + "-" + calldate.Day + " " + calldate.Hour + ":" + calldate.Minute + ":" + calldate.Second; } // using (MySqlConnection objConn = new MySqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CallTrackingDBContext"].ConnectionString)) { objConn.Open(); MySqlCommand objSetCallInfo = new MySqlCommand("SetCallInfo", objConn); objSetCallInfo.CommandType = CommandType.StoredProcedure; objSetCallInfo.CommandTimeout = int.MaxValue; objSetCallInfo.Parameters.Add("@date_", MySqlDbType.Datetime).Value = DateTime.Parse(date); objSetCallInfo.ExecuteNonQuery(); objConn.Close(); } /*_db.Database.ExecuteSqlCommand(String.Format(@"update Cdr c, Visits v set c.VisitsId=v.Id where c.VisitsId is null and c.calldate>Date('{0}') and c.dcontext='frw_in' and c.dst=v.UserNumber and c.calldate between v.datetime and v.lastupdate", date));// + interval 3 minute */ JobsInfo new_jobs_info = new JobsInfo() { status = true, lastactiondate = DateTime.Now.ToUniversalTime(), jobId = Constants.SetCallInfoJob };//поставить еще jobId! ( также в классе JobsInfo ) _jobsinfoRep.Add(new_jobs_info); _jobsinfoRep.Save(); Console.WriteLine("SetCallInfoJob is running....." + DateTime.Now.ToString()); Log.Info("SetCallInfoJob успешно выполнен!"); } } catch (Exception ex) { while (ex.InnerException != null) ex = ex.InnerException; //JobsInfo new_jobs_info = new JobsInfo() { status = false, lastactiondate = DateTime.Now.ToUniversalTime(), ExceptionText = String.Format(@"Message: {0}, Source: {1}, TargetSite: {2}, Trace: {3} ", ex.Message, ex.Source, ex.TargetSite, ex.StackTrace) };//поставить еще jobId! ( также в классе JobsInfo ) // _jobsinfoRep.Add(new_jobs_info); // _jobsinfoRep.Save(); Log.Error(String.Format(@"Message: {0}, Source: {1}, TargetSite: {2}, Trace: {3} ", ex.Message, ex.Source, ex.TargetSite, ex.StackTrace)); Console.WriteLine("SetCallInfoJob 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)); } }
///<Summary> /// Gets the answer ///</Summary> public void Execute(IJobExecutionContext context) { try { using (CallTrackingDBContext _db = new CallTrackingDBContext()) { Log.Info("SetCallInfoJob запущен!"); //получаем дату и время последнего запуска Job-а string date = ""; JobsInfo JobsInfoQuery = _jobsinfoRep.GetLastActionDateForJob(Constants.SetCallInfoJob);//_db.jobsInfo.FirstOrDefault(t => t.job.Id == Constants.SetCallInfoJob); if (JobsInfoQuery != null) { //date = JobsInfoQuery.lastactiondate.ToString("YYYY-M-dd hh:"); date = JobsInfoQuery.lastactiondate.Year + "-" + JobsInfoQuery.lastactiondate.Month + "-" + JobsInfoQuery.lastactiondate.Day + " " + JobsInfoQuery.lastactiondate.Hour + ":" + JobsInfoQuery.lastactiondate.Minute + ":" + JobsInfoQuery.lastactiondate.Second; } else //если Job не запускался, то делаем работу за весь период { DateTime calldate = DateTime.Parse("2012-05-01"); date = calldate.Year + "-" + calldate.Month + "-" + calldate.Day + " " + calldate.Hour + ":" + calldate.Minute + ":" + calldate.Second; } // using (MySqlConnection objConn = new MySqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["CallTrackingDBContext"].ConnectionString)) { objConn.Open(); MySqlCommand objSetCallInfo = new MySqlCommand("SetCallInfo", objConn); objSetCallInfo.CommandType = CommandType.StoredProcedure; objSetCallInfo.CommandTimeout = int.MaxValue; objSetCallInfo.Parameters.Add("@date_", MySqlDbType.Datetime).Value = DateTime.Parse(date); objSetCallInfo.ExecuteNonQuery(); objConn.Close(); } /*_db.Database.ExecuteSqlCommand(String.Format(@"update Cdr c, Visits v * set c.VisitsId=v.Id * where * c.VisitsId is null * and * c.calldate>Date('{0}') * and * c.dcontext='frw_in' * and * c.dst=v.UserNumber * and * c.calldate between v.datetime and v.lastupdate", date));// + interval 3 minute */ JobsInfo new_jobs_info = new JobsInfo() { status = true, lastactiondate = DateTime.Now.ToUniversalTime(), jobId = Constants.SetCallInfoJob }; //поставить еще jobId! ( также в классе JobsInfo ) _jobsinfoRep.Add(new_jobs_info); _jobsinfoRep.Save(); Console.WriteLine("SetCallInfoJob is running....." + DateTime.Now.ToString()); Log.Info("SetCallInfoJob успешно выполнен!"); } } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } //JobsInfo new_jobs_info = new JobsInfo() { status = false, lastactiondate = DateTime.Now.ToUniversalTime(), ExceptionText = String.Format(@"Message: {0}, Source: {1}, TargetSite: {2}, Trace: {3} ", ex.Message, ex.Source, ex.TargetSite, ex.StackTrace) };//поставить еще jobId! ( также в классе JobsInfo ) // _jobsinfoRep.Add(new_jobs_info); // _jobsinfoRep.Save(); Log.Error(String.Format(@"Message: {0}, Source: {1}, TargetSite: {2}, Trace: {3} ", ex.Message, ex.Source, ex.TargetSite, ex.StackTrace)); Console.WriteLine("SetCallInfoJob 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)); } }