public async Task <IActionResult> PostConfiguration([FromRoute] String IMEINumber, [FromBody] UrlModel urlModel, CancellationToken cancellationToken) { using (MobileConfiguration context = this.MobileConfigurationResolver()) { ApplicationConfiguration config = await context.ApplicationConfiguration.SingleOrDefaultAsync(c => c.IMEINumber == IMEINumber, cancellationToken); if (config != null) { throw new InvalidOperationException($"Configuration found for IMEI Number {IMEINumber}, use the PUT method to update the config"); } ApplicationConfiguration newConfig = new ApplicationConfiguration { IMEINumber = IMEINumber, SecurityServiceUri = urlModel.SecurityServiceUrl, ManagementApiUri = urlModel.ManagementApiUrl }; await context.ApplicationConfiguration.AddAsync(newConfig, cancellationToken); await context.SaveChangesAsync(cancellationToken); return(this.NoContent()); } }
internal static void EnsureInitialized() { if (_instances == null) { lock (_lockObject) if (_instances == null) { var localInstances = new Dictionary <Type, object>(); var pageService = new PageService(); #region Service Bindings var mobileConfiguration = new MobileConfiguration(); var mobileRedirectionService = new MobileRedirectionService(mobileConfiguration); localInstances[typeof(IMobileConfiguration)] = mobileConfiguration; localInstances[typeof(IPageRouteRegistrar)] = new PageRouteRegistrar(pageService, mobileConfiguration); localInstances[typeof(IPageService)] = pageService; localInstances[typeof(IConfiguredContentFragmentService)] = pageService; localInstances[typeof(IMobileRedirectionService)] = mobileRedirectionService; localInstances[typeof(IHtmlService)] = new HtmlService(mobileConfiguration); #endregion _instances = localInstances; } } }
/// <summary> /// Initialises the database. /// </summary> /// <param name="app">The application.</param> /// <param name="environment">The environment.</param> private async Task InitialiseDatabase(IApplicationBuilder app, IHostingEnvironment environment) { using (IServiceScope scope = app.ApplicationServices.GetService <IServiceScopeFactory>().CreateScope()) { MobileConfiguration mobileConfiguration = scope.ServiceProvider.GetRequiredService <MobileConfiguration>(); DatabaseSeeding.InitialiseDatabase(mobileConfiguration); } }
public async Task <IActionResult> GetConfiguration([FromRoute] String IMEINumber, CancellationToken cancellationToken) { using (MobileConfiguration context = this.MobileConfigurationResolver()) { ApplicationConfiguration config = await context.ApplicationConfiguration.SingleOrDefaultAsync(c => c.IMEINumber == IMEINumber, cancellationToken); if (config == null) { throw new NotFoundException($"No configuration found for IMEI Number {IMEINumber}"); } UrlModel model = new UrlModel(); model.ManagementApiUrl = config.ManagementApiUri; model.SecurityServiceUrl = config.SecurityServiceUri; return(this.Ok(model)); } }
public static void InitialiseDatabase(MobileConfiguration mobileConfiguration) { try { if (mobileConfiguration.Database.IsMySql()) { mobileConfiguration.Database.Migrate(); } mobileConfiguration.SaveChanges(); } catch (Exception ex) { String connString = mobileConfiguration.Database.GetDbConnection().ConnectionString; Exception newException = new Exception($"Connection String [{connString}]", ex); throw newException; } }
public async Task <IActionResult> PutConfiguration([FromRoute] String IMEINumber, [FromBody] UrlModel urlModel, CancellationToken cancellationToken) { using (MobileConfiguration context = this.MobileConfigurationResolver()) { ApplicationConfiguration config = await context.ApplicationConfiguration.SingleOrDefaultAsync(c => c.IMEINumber == IMEINumber, cancellationToken); if (config == null) { throw new NotFoundException($"No configuration found for IMEI Number {IMEINumber}"); } config.ManagementApiUri = urlModel.ManagementApiUrl; config.SecurityServiceUri = urlModel.SecurityServiceUrl; await context.SaveChangesAsync(cancellationToken); return(this.NoContent()); } }
public async void OnSave() { bool goToLogin = !ConfigurationReader.GetConfiguration().AlreadyInitialized; var configuration = new MobileConfiguration(); configuration.ApplicationMode = this.View.SelectedApplicationMode; configuration.Language = "en"; //TODO make an option configuration.AlreadyInitialized = true; if (configuration.ApplicationMode == ApplicationMode.Client) { configuration.ServerUrl = this.View.ServerUrlInputText; bool isValid = this.UrlValidator.IsUrlValid(configuration.ServerUrl); if (!isValid) { this.AlertDisplayer.DisplayAlert(StringResources.InvalidUrl, StringResources.InvalidUrlMessage); return; } this.SynchronizationServiceManager.StartSynchronizationService(); } else { this.SynchronizationServiceManager.StopSynchronizationService(); } this.ConfigurationWriter.SaveConfiguration(configuration); if (goToLogin) { await this.NavigationManager.NavigateAsNewStack <ILoginPresenter>(); } else { await this.NavigationManager.PopCurrent(); } }
public void SaveConfiguration(MobileConfiguration configuration) { var serialized = this.Serializer.Serialize(configuration); this.FileSystem.WriteAllBytes(Constants.CONFIG_FILE_PATH, GetBytes(serialized)); }