@namespace Oqtane.Modules.Admin.Tenants @inherits ModuleBase @inject NavigationManager NavigationManager @inject ITenantService TenantService @inject IInstallationService InstallationService
Cancel @code { private string name = string.Empty; private string type = "LocalDB"; private string server = "(LocalDb)\\MSSQLLocalDB"; private string database = "Oqtane-" + DateTime.UtcNow.ToString("yyyyMMddHHmm"); private string username = string.Empty; private string password = string.Empty; private string schema = string.Empty; private string integratedsecurity = "display: none;"; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host; private void SetIntegratedSecurity(ChangeEventArgs e) { if (Convert.ToBoolean((string)e.Value)) { integratedsecurity = "display: none;"; } else { integratedsecurity = string.Empty; } } private async Task SaveTenant() { if (!string.IsNullOrEmpty(name)) { ShowProgressIndicator(); var connectionString = string.Empty; 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, }; var installation = await InstallationService.Install(config); if (installation.Success) { //TODO : Move to Database Manager var 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); } } }