Ejemplo n.º 1
0
 public static HttpResponseMessage ValidateDocumentImportSettings(DocumentImportSettings settings)
 {
     try
     {
         DocumentManager documentManager = new DocumentManager();
         if (documentManager.ValidateDirectory(settings.FileDirectory) &&
             documentManager.ValidateDirectory(settings.ArchiveDirectory))
         {
             return(new HttpResponseMessage(HttpStatusCode.OK));
         }
         else
         {
             return(new HttpResponseMessage(HttpStatusCode.ExpectationFailed));
         }
     }
     catch (Exception ex)
     {
         logger.ErrorFormat("TestWritePermissions Get Error: {0}", ex);
         return(new HttpResponseMessage(HttpStatusCode.ExpectationFailed));
     }
 }
Ejemplo n.º 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);
            }
        }