@namespace Oqtane.Modules.Admin.Tenants @inherits ModuleBase @inject NavigationManager NavigationManager @inject ITenantService TenantService @inject IInstallationService InstallationService
Cancel @code { public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Host; } } string name = ""; string type = "LocalDB"; string server = "(LocalDb)\\MSSQLLocalDB"; string database = "Oqtane-" + DateTime.UtcNow.ToString("yyyyMMddHHmm"); string username = ""; string password = ""; string integratedsecurity = "display: none;"; private void SetIntegratedSecurity(ChangeEventArgs e) { if (Convert.ToBoolean((string)e.Value)) { integratedsecurity = "display: none;"; } else { integratedsecurity = ""; } } private async Task SaveTenant() { if (!string.IsNullOrEmpty(name)) { ShowProgressIndicator(); string connectionString = ""; if (type == "LocalDB") { connectionString = "Data Source=" + server + ";AttachDbFilename=|DataDirectory|\\" + database + ".mdf;Initial Catalog=" + database + ";Integrated Security=SSPI;"; } else { connectionString = "Data Source=" + server + ";Initial Catalog=" + database + ";"; if (integratedsecurity == "display: none;") { connectionString += "Integrated Security=SSPI;"; } else { connectionString += "User ID=" + username + ";Password=" + password; } } var config = new InstallConfig { IsMaster = false, ConnectionString = connectionString, }; Installation installation = await InstallationService.Install(config); if (installation.Success) { //TODO : Move to Database Manager Tenant tenant = new Tenant { Name = name, DBConnectionString = connectionString, IsInitialized = false }; await TenantService.AddTenantAsync(tenant); await logger.LogInformation("Tenant Created {Tenant}", tenant); NavigationManager.NavigateTo(NavigateUrl()); } else { await logger.LogError("Error Creating Tenant {Error}", installation.Message); AddModuleMessage(installation.Message, MessageType.Error); } } else { AddModuleMessage("You Must Provide A Name For The Tenant", MessageType.Warning); } } }