public EnterspeedUmbracoConfiguration GetConfiguration() { if (_configuration != null) { return(_configuration); } _configuration = GetConfigurationFromDatabase(); if (_configuration != null) { return(_configuration); } var webConfigEndpoint = ConfigurationManager.AppSettings["Enterspeed.Endpoint"]; var webConfigMediaDomain = ConfigurationManager.AppSettings["Enterspeed.MediaDomain"]; var webConfigApikey = ConfigurationManager.AppSettings["Enterspeed.Apikey"]; if (string.IsNullOrWhiteSpace(webConfigEndpoint) || string.IsNullOrWhiteSpace(webConfigApikey)) { return(new EnterspeedUmbracoConfiguration()); } _configuration = new EnterspeedUmbracoConfiguration { BaseUrl = webConfigEndpoint?.Trim(), ApiKey = webConfigApikey?.Trim(), MediaDomain = webConfigMediaDomain?.Trim(), IsConfigured = true }; return(_configuration); }
public void Save(EnterspeedUmbracoConfiguration configuration) { if (configuration == null) { return; } configuration.IsConfigured = true; configuration.MediaDomain = configuration.MediaDomain.TrimEnd('/'); if (!configuration.MediaDomain.IsAbsoluteUrl()) { throw new ConfigurationErrorsException( "Configuration value for Enterspeed.MediaDomain must be absolute url"); } using (var db = ApplicationContext.Current.DatabaseContext.Database) { // In case of SQL CE we need to see if the config is already existing, so we can update it, or otherwise insert it var existingConfig = GetConfigurationFromDatabase(); if (existingConfig == null) { db.Insert(MapToSchema(configuration)); } else { db.Save(MapToSchema(configuration)); } db.CompleteTransaction(); db.CloseSharedConnection(); } _configuration = configuration; }
public HttpResponseMessage SaveConfiguration(EnterspeedUmbracoConfiguration configuration) { if (string.IsNullOrEmpty(configuration?.ApiKey) || string.IsNullOrEmpty(configuration?.BaseUrl)) { return(Request.CreateResponse(HttpStatusCode.BadRequest, new Response { Status = HttpStatusCode.BadRequest, Success = false, Message = "Apikey or url is empty" })); } if (string.IsNullOrWhiteSpace(configuration.MediaDomain)) { configuration.MediaDomain = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority); } var response = TestConnection(configuration); if (!response.Success) { return(Request.CreateResponse(HttpStatusCode.OK, response)); } try { _enterspeedConfigurationService.Save(configuration); } catch (ConfigurationErrorsException exception) { return(Request.CreateResponse(HttpStatusCode.BadRequest, new Response { Status = HttpStatusCode.BadRequest, Success = false, Message = exception.Message, Exception = exception })); } _enterspeedConnection.Flush(); return(Request.CreateResponse(HttpStatusCode.OK, new Response { Status = HttpStatusCode.OK, Success = true })); }
private EnterspeedConfigurationSchema MapToSchema(EnterspeedUmbracoConfiguration config) { if (config == null) { return(null); } return(new EnterspeedConfigurationSchema { Id = 1, // Default 1 ApiKey = config.ApiKey, ConnectionTimeout = config.ConnectionTimeout, MediaDomain = config.MediaDomain, BaseUrl = config.BaseUrl, IngestVersion = config.IngestVersion, }); }
public void Save(EnterspeedUmbracoConfiguration configuration) { if (configuration == null) { return; } configuration.MediaDomain = configuration.MediaDomain.TrimEnd('/'); if (!configuration.MediaDomain.IsAbsoluteUrl()) { throw new ConfigurationErrorsException( "Configuration value for Enterspeed.MediaDomain must be absolute url"); } configuration.IsConfigured = true; _keyValueService.SetValue(_configurationDatabaseKey, JsonConvert.SerializeObject(configuration)); _configuration = configuration; }