/// <summary> /// Checks for configurations and settings /// for the automated Bulk Action process /// </summary> private void AutomatedBulkActionJob() { var bulkActionSettings = campusLogicSection.BulkActionSettings; string serviceName = "Automated Bulk Action"; // validation if (bulkActionSettings == null) { NotificationService.ErrorNotification(serviceName, "Bulk Action settings are missing from the config file"); logger.Error("Bulk Action settings are missing from the config file"); return; } if (bulkActionSettings.BulkActionEnabled) { //Set reoccurance based on configs var cronValue = ""; switch (bulkActionSettings.Frequency) { case "daily": cronValue = Cron.Daily(); break; case "weekly": cronValue = Cron.Weekly(); break; case "minutes": cronValue = Cron.Minutely(); break; case "hourly": cronValue = Cron.Hourly(); break; } RecurringJob.AddOrUpdate(serviceName, () => DocumentImportService.ProcessBulkAction(new BulkActionUploadDto { FileUploadDirectory = bulkActionSettings.BulkActionUploadPath, FileArchiveDirectory = bulkActionSettings.BulkActionArchivePath, NotificationEmail = bulkActionSettings.NotificationEmail, UseSSN = bulkActionSettings.UseSSN }), cronValue); } else { RecurringJob.RemoveIfExists(serviceName); } }
/// <summary> /// Validates configuration for the document import feature, /// then adds a background job if valid. /// </summary> private void AutomatedDocumentImportWorker() { DocumentImportSettings config = campusLogicSection.DocumentImportSettings; string serviceName = DocumentImportService.Name; if (config == null) { NotificationService.ErrorNotification(serviceName, $"The {serviceName} settings are missing"); logger.Error($"The {serviceName} settings are missing"); return; } if (config.Enabled) { if (string.IsNullOrEmpty(config.ArchiveDirectory)) { NotificationService.ErrorNotification(serviceName, $"{serviceName} archive directory empty"); logger.Error($"{serviceName} archive directory empty"); return; } if (string.IsNullOrEmpty(config.FileDirectory)) { NotificationService.ErrorNotification(serviceName, $"{serviceName} file directory empty"); logger.Error($"{serviceName} file directory path empty"); return; } var acceptedUploadFrequencies = new List <string> { "daily", "weekly", "minutes", "hourly" }; if (!acceptedUploadFrequencies.Contains(config.Frequency)) { NotificationService.ErrorNotification(serviceName, $"{serviceName} frequency not valid"); logger.Error($"{serviceName} frequency not valid"); return; } //Set reoccurance based on configs var cronValue = ""; switch (config.Frequency) { case "daily": cronValue = Cron.Daily(); break; case "weekly": cronValue = Cron.Weekly(); break; case "minutes": cronValue = Cron.Minutely(); break; case "hourly": cronValue = Cron.Hourly(); break; } RecurringJob.AddOrUpdate(serviceName, () => DocumentImportService.ProcessImports(new DocumentImportSettingsDto { ArchiveDirectory = config.ArchiveDirectory, FileDirectory = config.FileDirectory, FileExtension = config.FileExtension, HasHeaderRow = config.HasHeaderRow, UseSSN = config.UseSSN }), cronValue); } else { RecurringJob.RemoveIfExists(serviceName); } }