private void Form1_Load(object sender, EventArgs e)
        {
            Job job = new Job();

            job.Run2();

            IRemoteJob remotejob = job;

            remotejob.Run();

            ILocalJob localJob = job;

            localJob.Run();
        }
Beispiel #2
0
        private static PledgeLog CreateFileProcessPledgeLog(IConfiguration configuration, IRemoteJob job, Dictionary<string, string> loggingOptions)
        {
            string sessionId = Guid.Empty.ToString();
            string fileName = null;

            loggingOptions?.TryGetValue(PledgeGlobal.SessionId, out sessionId);
            loggingOptions?.TryGetValue(PledgeGlobal.InputFileName, out fileName);

            PledgeLog logEntry = new PledgeLog()
            {
                ConfigId = configuration.Id.ToString(),
                StartTime = DateTime.UtcNow,
                DateCreated = DateTime.UtcNow,
                SessionId = sessionId,
                RunType = sessionId == Guid.Empty.ToString() ? RunType.ScheduledJobRun : RunType.WebsiteRun
            };

            if (job != null)
            {
                logEntry.JobId = job.JobId.ToString();
                var propertyBag = job.IngestMediumSettings;
                if (string.IsNullOrWhiteSpace(fileName))
                {
                    var sourceFolder = propertyBag.GetProperty(PledgeGlobal.ImportFolderKey);
                    var filePattern = propertyBag.GetProperty(PledgeGlobal.FilePatternKey);
                    try
                    {
                        fileName = Directory.GetFiles(sourceFolder, filePattern).FirstOrDefault();
                    }
                    catch
                    {
                        fileName = $"{filePattern} (in) {sourceFolder}";
                    }

                }
                logEntry.Write(propertyBag, nameof(job.IngestMediumSettings));
                logEntry.Write(job.EgestHandlerType.ToString(), nameof(job.EgestHandlerType));
                logEntry.Write(job.IngestHandlerType.ToString(), nameof(job.IngestHandlerType));
                logEntry.Write(loggingOptions, nameof(loggingOptions));
            }

            logEntry.Subject = $"Process File: {fileName}";

            return logEntry;
        }
Beispiel #3
0
        /// <summary>
        /// Object for representing a remote job on the UI
        /// </summary>
        /// <param name="job"></param>
        /// <param name="configurations"></param>
        /// <param name="handlers"></param>
        public ApiRemoteJob(IRemoteJob job, IEnumerable<ConfigurationCore> configurations, IEnumerable<HandlerTypeInfo> handlers)
        {
            _coreJob = job;
            var config = configurations.FirstOrDefault(arg => arg.Id == job.ConfigurationId);

            if (config != null)
            {
                ConfigurationName = config.Name;
            }

            var handlerList = handlers.ToList();

            var handler = handlerList.Single(arg => arg.Type == job.IngestHandlerType);
            IngestHandlerName = handler.Name;

            handler = handlerList.Single(arg => arg.Type == job.EgestHandlerType);
            EgestHandlerName = handler.Name;
        }
Beispiel #4
0
        /// <summary>
        /// Creates a copy from the specified original.
        /// </summary>
        /// <param name="original">The original.</param>
        /// <returns>A copy configuration</returns>
        public static RemoteJob Copy(IRemoteJob original)
        {
            if (original == null)
            {
                return(null);
            }

            return(new RemoteJob
            {
                JobId = Guid.NewGuid(),
                JobName = $"Copy of {original.JobName}",
                ConfigurationId = original.ConfigurationId,
                IngestHandlerType = original.IngestHandlerType,
                EgestHandlerType = original.EgestHandlerType,
                IngestMediumSettings = original.IngestMediumSettings,
                EgestMediumSettings = original.EgestMediumSettings
            });
        }
Beispiel #5
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="configurationId"></param>
        /// <param name="userName"></param>
        /// <param name="job"></param>
        /// <param name="clientId"></param>
        /// <param name="options">Options for logging</param>
        /// <returns></returns>
        public IPledgeResult Execute(Guid configurationId, string userName, IRemoteJob job, string clientId, Dictionary<string, string> options)
        {
            PledgeLog logEntry = null; 
            try
            {
                
                var configuration = ConfigurationManager.GetConfiguration(configurationId, userName);
                // Logging - BEGIN
                logEntry = Auditor.CreateFileProcessPledgeLog(configuration, job, options);
                logEntry.UserName = userName;
                // Logging - END

                var pipeline = Builder.CreatePipeline(job, configuration);

                // Logging - BEGIN
                logEntry.StartTime = DateTime.UtcNow;
                // Logging - END

                var result = pipeline.Run(new CancellationToken());

                // logging - BEGIN
                logEntry.EndTime = DateTime.UtcNow;
                logEntry.PassedRows = result.PledgeResult.TotalPassedRecordsCount;
                logEntry.FailedRows = result.PledgeResult.TotalFailedRecordsCount;
                logEntry.TotalRows = result.PledgeResult.TotalRecordsProcessed;
                // logging - END

                EventsManager.ReportValidationComplete(result.PledgeResult.FileHasInvalidRecords, clientId);
                return result.PledgeResult;
            }
            catch (Exception ex)
            {
                // Logging - BEGIN
                if (logEntry != null)
                {
                    logEntry.EndTime = DateTime.UtcNow;
                    logEntry.Write(ex);
                }
                // Logging - END
                EventsManager.ReportValidationComplete(true, clientId);
                throw;
            }
            finally
            {
                // Logging - BEGIN
                Auditor.Log(logEntry);
                Auditor.SaveLogs();
                // Logging - END
            }
        }
Beispiel #6
0
 /// <summary>
 /// Saves the remote job with the specified identifier.
 /// </summary>
 /// <param name="remoteJob">The job configuration.</param>
 /// <param name="userId">The user identifier.</param>
 public void SaveRemoteJob(IRemoteJob remoteJob, string userId)
 {
     ConfigurationManager.SaveRemoteJob(remoteJob, userId);
 }
Beispiel #7
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="job"></param>
        public void Write(IRemoteJob job)
        {
            if (null == job) return;

            Write(new Dictionary<string, string>()
            {
                {nameof(job.JobId), job.JobId.ToString() },
                {nameof(job.JobName), job.JobName },
                { nameof(job.ConfigurationId), job.ConfigurationId.ToString() },
                {nameof(job.EgestHandlerType), job.EgestHandlerType.ToString() },
                {nameof(job.IngestHandlerType), job.IngestHandlerType.ToString() },
            },
            "Job");
        }
        /// <summary>
        /// Saves the job with the specified identifier.
        /// </summary>
        /// <param name="remoteJob">The job configuration.</param>
        /// <param name="userId">The user identifier.</param>
        public void SaveRemoteJob(IRemoteJob remoteJob, string userId)
        {
            var jobData = ((RemoteJob) remoteJob).SerializeToXml();

            Repository.Save(remoteJob.JobId, remoteJob.ConfigurationId, remoteJob.JobName, jobData, userId);
        }
 /// <summary>
 /// Creates a UI friendly object for a remote job instance
 /// </summary>
 /// <param name="job"></param>
 /// <param name="pledgeConfigurations"></param>
 /// <param name="handlers"></param>
 /// <returns></returns>
 public static ApiRemoteJob CreateApiJob(IRemoteJob job, IEnumerable<ConfigurationCore> pledgeConfigurations, IEnumerable<HandlerTypeInfo> handlers)
 {
     return new ApiRemoteJob(job, pledgeConfigurations, handlers);
 }