コード例 #1
0
ファイル: AgentJob.cs プロジェクト: kiquenet/B4F
 public bool IsJobRelevant(ManagementCompanyDetails companyDetails)
 {
     bool isRelevant = false;
     if (this.ManagementCompanyId == 0 || companyDetails.IsStichting || companyDetails.Key.Equals(this.ManagementCompanyId))
         isRelevant = true;
     return isRelevant;
 }
コード例 #2
0
ファイル: RemoteJobManager.cs プロジェクト: kiquenet/B4F
 public void StopJob(ManagementCompanyDetails companyDetails, int jobID)
 {
     RemoteJobManager.Manager.StopJob(companyDetails, jobID);
 }
コード例 #3
0
ファイル: RemoteJobManager.cs プロジェクト: kiquenet/B4F
 public System.Data.DataSet GetData(ManagementCompanyDetails companyDetails)
 {
     return RemoteJobManager.Manager.GetData(companyDetails);
 }
コード例 #4
0
ファイル: JobManager.cs プロジェクト: kiquenet/B4F
        /// <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;
        }
コード例 #5
0
ファイル: JobManager.cs プロジェクト: kiquenet/B4F
        /// <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"));
                    }
                }
            }
        }
コード例 #6
0
ファイル: JobManager.cs プロジェクト: kiquenet/B4F
 /// <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);
 }