Пример #1
0
        /// <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);
            }
        }
Пример #2
0
        /// <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);
            }
        }