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)); } }
/// <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); } }