/// <summary> /// Deletes File Store and Document settings after being transferred to File Definitions. /// </summary> /// <param name="campusLogicSection"></param> private void ClearOldFileDefinitions(CampusLogicSection campusLogicSection) { var fileStoreSettings = campusLogicSection.FileStoreSettings; if (fileStoreSettings.FileStoreEnabled ?? false) { fileStoreSettings.FileStoreNameFormat = null; fileStoreSettings.IncludeHeaderRecord = null; fileStoreSettings.FileStoreFileFormat = null; fileStoreSettings.FileExtension = null; fileStoreSettings.FileStoreMappingCollectionConfig = null; } var documentSettings = campusLogicSection.DocumentSettings; if (documentSettings.DocumentsEnabled ?? false) { documentSettings.FileNameFormat = null; documentSettings.IncludeHeaderRecord = null; documentSettings.IndexFileExtension = null; documentSettings.IndexFileFormat = null; documentSettings.FieldMappingCollectionConfig = null; } }
public HttpResponseMessage Configurations(ConfigurationModel configurationModel) { try { Configuration config = WebConfigurationManager.OpenWebConfiguration(HttpContext.Current.Request.ApplicationPath); CampusLogicSection campusLogicSection = (CampusLogicSection)config.GetSection("campusLogicConfig"); SmtpSection smtpSection = (SmtpSection)config.GetSection("system.net/mailSettings/smtp"); AppSettingsSection appSettings = config.AppSettings; //Workarounds until we can figure out why the properties won't deserialize as is campusLogicSection.EventNotifications = configurationModel.CampusLogicSection.EventNotifications; campusLogicSection.EventNotifications.EventNotificationsEnabled = configurationModel.CampusLogicSection.EventNotificationsEnabled; foreach (EventNotificationHandler eventNotificationHandler in configurationModel.CampusLogicSection.EventNotificationsList) { campusLogicSection.EventNotifications.Add(eventNotificationHandler); } campusLogicSection.FileStoreSettings = configurationModel.CampusLogicSection.FileStoreSettings; foreach (FieldMapSettings fieldMapSetting in configurationModel.CampusLogicSection.FileStoreSettings.FileStoreMappingCollection) { campusLogicSection.FileStoreSettings.FileStoreMappingCollectionConfig.Add(fieldMapSetting); } campusLogicSection.DocumentSettings = configurationModel.CampusLogicSection.DocumentSettings; foreach (FieldMapSettings fieldMapSetting in configurationModel.CampusLogicSection.DocumentSettings.FieldMappingCollection) { campusLogicSection.DocumentSettings.FieldMappingCollectionConfig.Add(fieldMapSetting); } campusLogicSection.StoredProcedures = configurationModel.CampusLogicSection.StoredProcedures; campusLogicSection.StoredProcedures.StoredProceduresEnabled = configurationModel.CampusLogicSection.StoredProceduresEnabled; foreach (StoredProcedureDto storedProcedure in configurationModel.CampusLogicSection.StoredProcedureList) { StoredProcedureElement storedProcedureElement = new StoredProcedureElement(); storedProcedureElement.Name = storedProcedure.Name; foreach (ParameterDto parameter in storedProcedure.ParameterList) { ParameterElement parameterElement = new ParameterElement(); parameterElement.Name = parameter.Name; parameterElement.DataType = parameter.DataType; parameterElement.Length = parameter.Length; parameterElement.Source = parameter.Source; storedProcedureElement.Add(parameterElement); } campusLogicSection.StoredProcedures.Add(storedProcedureElement); } campusLogicSection.BatchProcessingTypes = configurationModel.CampusLogicSection.BatchProcessingTypes; campusLogicSection.BatchProcessingTypes.BatchProcessingEnabled = configurationModel.CampusLogicSection.BatchProcessingEnabled; foreach (BatchProcessingTypeDto batchProcessingType in configurationModel.CampusLogicSection.BatchProcessingTypesList) { BatchProcessingTypeElement batchProcessingTypeElement = new BatchProcessingTypeElement(); batchProcessingTypeElement.TypeName = batchProcessingType.TypeName; foreach (BatchProcessDto batchProcess in batchProcessingType.BatchProcesses) { var batchProcessElement = new BatchProcessElement(); batchProcessElement.BatchName = batchProcess.BatchName; if (batchProcessingTypeElement.TypeName == ConfigConstants.AwardLetterPrintBatchType) { batchProcessElement.MaxBatchSize = batchProcess.MaxBatchSize; batchProcessElement.FilePath = batchProcess.FilePath; batchProcessElement.FileNameFormat = batchProcess.FileNameFormat; batchProcessElement.BatchExecutionMinutes = batchProcess.BatchExecutionMinutes; batchProcessElement.IndexFileEnabled = batchProcess.IndexFileEnabled; batchProcessElement.FileDefinitionName = batchProcess.FileDefinitionName; } batchProcessingTypeElement.Add(batchProcessElement); } campusLogicSection.BatchProcessingTypes.Add(batchProcessingTypeElement); } campusLogicSection.FileDefinitionSettings = configurationModel.CampusLogicSection.FileDefinitionSettings; campusLogicSection.FileDefinitionSettings.FileDefinitionsEnabled = configurationModel.CampusLogicSection.FileDefinitionsEnabled; foreach (var listSetting in configurationModel.CampusLogicSection.FileDefinitionsList) { FileDefinitionSetting fileDefinitionSetting = new FileDefinitionSetting(); fileDefinitionSetting.Name = listSetting.Name; fileDefinitionSetting.FileNameFormat = listSetting.FileNameFormat; fileDefinitionSetting.IncludeHeaderRecord = listSetting.IncludeHeaderRecord; fileDefinitionSetting.FileExtension = listSetting.FileExtension; fileDefinitionSetting.FileFormat = listSetting.FileFormat; foreach (var fieldMapping in listSetting.FieldMappingCollection) { fileDefinitionSetting.FieldMappingCollectionConfig.Add(fieldMapping); } campusLogicSection.FileDefinitionSettings.Add(fileDefinitionSetting); } campusLogicSection.ApiIntegrations = configurationModel.CampusLogicSection.ApiIntegrations; campusLogicSection.ApiIntegrations.ApiIntegrationsEnabled = configurationModel.CampusLogicSection.ApiIntegrationsEnabled; foreach (ApiIntegrationDto apiIntegration in configurationModel.CampusLogicSection.ApiIntegrationsList) { ApiIntegrationElement apiIntegrationElement = new ApiIntegrationElement(); apiIntegrationElement.ApiId = apiIntegration.ApiId; apiIntegrationElement.ApiName = apiIntegration.ApiName; apiIntegrationElement.Authentication = apiIntegration.Authentication; apiIntegrationElement.TokenService = apiIntegration.TokenService; apiIntegrationElement.Root = apiIntegration.Root; apiIntegrationElement.Username = apiIntegration.Username; apiIntegrationElement.Password = apiIntegration.Password; campusLogicSection.ApiIntegrations.Add(apiIntegrationElement); } campusLogicSection.ApiEndpoints = configurationModel.CampusLogicSection.ApiEndpoints; foreach (ApiIntegrationEndpointDto apiEndpoint in configurationModel.CampusLogicSection.ApiEndpointsList) { ApiIntegrationEndpointElement endpointElement = new ApiIntegrationEndpointElement(); endpointElement.Name = apiEndpoint.Name; endpointElement.Endpoint = apiEndpoint.Endpoint; endpointElement.ApiId = apiEndpoint.ApiId; endpointElement.Method = apiEndpoint.Method; endpointElement.MimeType = apiEndpoint.MimeType; endpointElement.ParameterMappings = JArray.Parse(apiEndpoint.ParameterMappings).ToString(); campusLogicSection.ApiEndpoints.Add(endpointElement); } campusLogicSection.PowerFaidsSettings = configurationModel.CampusLogicSection.PowerFaidsSettings; campusLogicSection.PowerFaidsSettings.PowerFaidsEnabled = configurationModel.CampusLogicSection.PowerFaidsEnabled; foreach (var record in configurationModel.CampusLogicSection.PowerFaidsList) { PowerFaidsSetting powerFaidsSetting = new PowerFaidsSetting(); powerFaidsSetting.Event = record.Event; powerFaidsSetting.Outcome = record.Outcome; powerFaidsSetting.ShortName = record.ShortName; powerFaidsSetting.RequiredFor = record.RequiredFor; powerFaidsSetting.Status = record.Status; powerFaidsSetting.DocumentLock = record.DocumentLock; powerFaidsSetting.VerificationOutcome = record.VerificationOutcome; powerFaidsSetting.VerificationOutcomeLock = record.VerificationOutcomeLock; powerFaidsSetting.TransactionCategory = record.TransactionCategory; campusLogicSection.PowerFaidsSettings.PowerFaidsSettingCollectionConfig.Add(powerFaidsSetting); } campusLogicSection.BulkActionSettings = configurationModel.CampusLogicSection.BulkActionSettings; campusLogicSection.ISIRUploadSettings = configurationModel.CampusLogicSection.ISIRUploadSettings; campusLogicSection.ISIRCorrectionsSettings = configurationModel.CampusLogicSection.ISIRCorrectionsSettings; campusLogicSection.AwardLetterUploadSettings = configurationModel.CampusLogicSection.AwardLetterUploadSettings; campusLogicSection.DataFileUploadSettings = configurationModel.CampusLogicSection.DataFileUploadSettings; campusLogicSection.FileMappingUploadSettings = configurationModel.CampusLogicSection.FileMappingUploadSettings; campusLogicSection.AwardLetterPrintSettings = configurationModel.CampusLogicSection.AwardLetterPrintSettings; campusLogicSection.SMTPSettings = configurationModel.CampusLogicSection.SMTPSettings; campusLogicSection.ClientDatabaseConnection = configurationModel.CampusLogicSection.ClientDatabaseConnection; campusLogicSection.DocumentImportSettings = configurationModel.CampusLogicSection.DocumentImportSettings; smtpSection.DeliveryMethod = configurationModel.SmtpSection.DeliveryMethod; smtpSection.DeliveryFormat = configurationModel.SmtpSection.DeliveryFormat; smtpSection.From = configurationModel.SmtpSection.From; smtpSection.Network.ClientDomain = configurationModel.SmtpSection.Network.ClientDomain; smtpSection.Network.DefaultCredentials = configurationModel.SmtpSection.Network.DefaultCredentials; smtpSection.Network.EnableSsl = configurationModel.SmtpSection.Network.EnableSsl; smtpSection.Network.Host = configurationModel.SmtpSection.Network.Host; smtpSection.Network.Password = configurationModel.SmtpSection.Network.Password; smtpSection.Network.Port = configurationModel.SmtpSection.Network.Port; smtpSection.Network.TargetName = configurationModel.SmtpSection.Network.TargetName; smtpSection.Network.UserName = configurationModel.SmtpSection.Network.UserName; smtpSection.SpecifiedPickupDirectory.PickupDirectoryLocation = configurationModel.SmtpSection.SpecifiedPickupDirectory.PickupDirectoryLocation; appSettings.Settings.Clear(); foreach (var appSetting in configurationModel.AppSettingsSection) { appSettings.Settings.Add(FirstCharToUpper(appSetting.Key), appSetting.Value); } Assembly clConnectAssembly = Assembly.GetExecutingAssembly(); AssemblyName clConnect = clConnectAssembly.GetName(); appSettings.Settings["ClConnectVersion"].Value = clConnect.Version.ToString(); appSettings.Settings["Webpages:Version"].Value = "2.0.0.0"; appSettings.Settings["Webpages:Enabled"].Value = "false"; appSettings.Settings["PreserveLoginUrl"].Value = "true"; appSettings.Settings["ClientValidationEnabled"].Value = "true"; appSettings.Settings["UnobtrusiveJavaScriptEnabled"].Value = "true"; if (appSettings.Settings["Environment"].Value == EnvironmentConstants.SANDBOX) { appSettings.Settings["StsUrl"].Value = ApiUrlConstants.STS_URL_SANDBOX; appSettings.Settings["SvWebApiUrl"].Value = ApiUrlConstants.SV_API_URL_SANDBOX; appSettings.Settings["AwardLetterWebApiUrl"].Value = ApiUrlConstants.AL_API_URL_SANDBOX; appSettings.Settings["PmWebApiUrl"].Value = ApiUrlConstants.PM_API_URL_SANDBOX; appSettings.Settings["SuWebApiUrl"].Value = ApiUrlConstants.SU_API_URL_SANDBOX; } else { appSettings.Settings["StsUrl"].Value = ApiUrlConstants.STS_URL_PRODUCTION; appSettings.Settings["SvWebApiUrl"].Value = ApiUrlConstants.SV_API_URL_PRODUCTION; appSettings.Settings["AwardLetterWebApiUrl"].Value = ApiUrlConstants.AL_API_URL_PRODUCTION; appSettings.Settings["PmWebApiUrl"].Value = ApiUrlConstants.PM_API_URL_PRODUCTION; appSettings.Settings["SuWebApiUrl"].Value = ApiUrlConstants.SU_API_URL_PRODUCTION; } ClearOldFileDefinitions(campusLogicSection); config.Save(); return(Request.CreateResponse(HttpStatusCode.OK)); } catch (Exception ex) { logger.ErrorFormat("SetupController SaveConfigurations Error: {0}", ex); return(Request.CreateResponse(HttpStatusCode.ExpectationFailed)); } }