public async Task ProcessStudentEventsXmlFiles() { try { var jobName = _environmentSettings.GetSetting("STUDENT_EVENTS_XML_JOB_NAME"); var job = await _jobsRepository.GetJobByName(jobName); if (job == null) { throw new ArgumentException($"Job '{jobName}' does not exist"); } if (job.Enabled) { // Create JobHistory.. DateTime dateRun = DateTime.UtcNow; var jobHistory = await _jobsRepository.AddJobHistory(job.JobID, dateRun); _logger.LogInformation($"LogHistoryID : {jobHistory.JobHistoryID}"); try { // First Process the failed records in previous executions _logger.LogInformation($"Getting JobRetryLogs for JobID: {job.JobID}.."); //var jobRetryLogs = await _jobsRepository.GetStudentEventRetryLogs(job.JobID); //_logger.LogInformation($"JobRetryLogs found: {jobRetryLogs.Count}"); //if (jobRetryLogs.Any()) // await _messageFileProcessorComponent.ProcessStudentEventsRetryLogs(jobHistory.JobHistoryID, jobRetryLogs); // Now process new records.. await _messageFileProcessorComponent.ProcessStudentEventsXmlFiles(jobHistory.JobHistoryID); await _jobsRepository.UpdateJobDateLastRun(job.JobID, dateRun); await _jobsRepository.UpdateJobHistory(jobHistory.JobHistoryID, true, string.Empty); } catch (Exception ex) { var fileName = ex.Data["FileName"] ?? string.Empty; await _jobsRepository.UpdateJobHistory(jobHistory.JobHistoryID, false, $"Error: {ex.Message} - FileName : {fileName}"); throw; } } else { _logger.LogWarning($"Process Student Events Xml Files Job is Disabled, JObID: {job.JobID}"); } } catch (Exception ex) { _logger.LogError(ex, "ProcessStudentEventsXmlFiles()"); } }