public bool IsJobRelevant(ManagementCompanyDetails companyDetails) { bool isRelevant = false; if (this.ManagementCompanyId == 0 || companyDetails.IsStichting || companyDetails.Key.Equals(this.ManagementCompanyId)) isRelevant = true; return isRelevant; }
public void StopJob(ManagementCompanyDetails companyDetails, int jobID) { RemoteJobManager.Manager.StopJob(companyDetails, jobID); }
public System.Data.DataSet GetData(ManagementCompanyDetails companyDetails) { return RemoteJobManager.Manager.GetData(companyDetails); }
/// <summary> /// This method creates a dataset and fills it with the current status of all the jobs /// </summary> /// <returns>a dataset</returns> protected DataSet generateReportDataSet(ManagementCompanyDetails companyDetails) { DataSet ds = new DataSet("Manager Report"); DataTable tMan = ds.Tables.Add("Manager"); tMan.Columns.Add("IsRunning", typeof(Boolean)); tMan.Columns.Add("Heartbeat", typeof(String)); DataTable tJobs = ds.Tables.Add("Jobs"); tJobs.Columns.Add("JobID", typeof(Int32)); tJobs.Columns.Add("Name", typeof(String)); tJobs.Columns.Add("Status", typeof(String)); tJobs.Columns.Add("IsBusy", typeof(Boolean)); tJobs.Columns.Add("LastScheduled", typeof(DateTime)); tJobs.Columns.Add("NextScheduled", typeof(DateTime)); tJobs.Columns.Add("Components", typeof(Int32)); DataTable tComp = ds.Tables.Add("Components"); tComp.Columns.Add("JobID", typeof(Int32)); tComp.Columns.Add("SequenceNumber", typeof(Int32)); tComp.Columns.Add("Name", typeof(String)); tComp.Columns.Add("IsEnabled", typeof(Boolean)); tComp.Columns.Add("Status", typeof(String)); tComp.Columns.Add("LastResult", typeof(String)); ds.Relations.Add("rel_Jobs_Components", tJobs.Columns["JobID"], tComp.Columns["JobID"]); if (_isInitialized) { tMan.Rows.Add(new object[] { IsRunning, HeartBeat.ToLongTimeString() } ); foreach (AgentJob job in this._jobs) { if (job.IsJobRelevant(companyDetails)) { tJobs.Rows.Add(new object[] { job.ID, job.Name, job.DisplayStatus, job.IsBusy, job.LastScheduled, job.NextScheduled, job.JobComponents.Count }); foreach (JobComponent comp in job.JobComponents) { tComp.Rows.Add(new object[] { comp.Job.ID, comp.SequenceNumber, comp.Name, comp.IsEnabled, comp.DisplayStatus, comp.DisplayLastResult }); } } } } return ds; }
/// <summary> /// Stops a specific job by it's id. /// </summary> public void StopJob(ManagementCompanyDetails companyDetails, int jobID) { Trace.WriteLineIf(_managerSwitch.TraceInfo, string.Format("{0:yyyy-MM-dd HH:mm:ss.ffff}\t{1}\tManager\t{2}", DateTime.Now, Thread.CurrentThread.ManagedThreadId, "StopJob()")); if (!_isRunning) throw (new InvalidOperationException("Job Manager not started.")); foreach (AgentJob job in this.Jobs) { if (job.ID.Equals(jobID)) { if (job.IsJobRelevant(companyDetails)) { job.Stop(); Trace.WriteLineIf(_managerSwitch.TraceInfo, string.Format("{0:yyyy-MM-dd HH:mm:ss.ffff}\t{1}\tManager\t{2}", DateTime.Now, Thread.CurrentThread.ManagedThreadId, "Job STOPPED")); } } } }
/// <summary> /// Retrieves the current status of all the jobs /// </summary> /// <returns>A serialized dataset</returns> public DataSet GetData(ManagementCompanyDetails companyDetails) { //System.IO.StringWriter sw = new System.IO.StringWriter(); //generateReportDataSet().WriteXml(sw, XmlWriteMode.WriteSchema); //sw.Flush(); //return sw.ToString(); return generateReportDataSet(companyDetails); }