private void Form1_Load(object sender, EventArgs e) { Job job = new Job(); job.Run2(); IRemoteJob remotejob = job; remotejob.Run(); ILocalJob localJob = job; localJob.Run(); }
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; }
/// <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; }
/// <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 }); }
/// <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 } }
/// <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); }
/// <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); }