@namespace Oqtane.UI @inject NavigationManager NavigationManager @inject IInstallationService InstallationService @inject ISiteService SiteService @inject IUserService UserService @inject IJSRuntime JSRuntime @inject IStringLocalizer Localizer
@Localizer["Version:"] @Constants.Version

@Localizer["Database Configuration"]


@Localizer["Application Administrator"]





@code { private string _databaseType = "LocalDB"; private string _serverName = "(LocalDb)\\MSSQLLocalDB"; private string _fileName = "Oqtane-" + DateTime.UtcNow.ToString("yyyyMMddHHmm") + ".db"; private string _databaseName = "Oqtane-" + DateTime.UtcNow.ToString("yyyyMMddHHmm"); private string _username = string.Empty; private string _password = string.Empty; private string _hostUsername = UserNames.Host; private string _hostPassword = string.Empty; private string _confirmPassword = string.Empty; private string _hostEmail = string.Empty; private string _message = string.Empty; private string _integratedSecurityDisplay = "display: none;"; private string _fileFieldsDisplay = "display: none;"; private string _serverFieldsDisplay = "display: none;"; private string _loadingDisplay = "display: none;"; protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { var interop = new Interop(JSRuntime); await interop.IncludeLink("app-stylesheet", "stylesheet", "https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css", "text/css", "sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T", "anonymous", ""); } } private void SetIntegratedSecurity(ChangeEventArgs e) { _integratedSecurityDisplay = Convert.ToBoolean((string)e.Value) ? "display: none;" : string.Empty; } private async Task Install() { if (((_serverName != "" && _databaseName != "") || _fileName !="") && _hostUsername != "" && _hostPassword.Length >= 6 && _hostPassword == _confirmPassword && _hostEmail != "") { _loadingDisplay = ""; StateHasChanged(); var connectionstring = ""; switch (_databaseType) { case "LocalDB": connectionstring = "Data Source=" + _serverName + ";AttachDbFilename=|DataDirectory|\\" + _databaseName + ".mdf;Initial Catalog=" + _databaseName + ";Integrated Security=SSPI;"; break; case "SQLServer": connectionstring = "Data Source=" + _serverName + ";Initial Catalog=" + _databaseName + ";"; if (_integratedSecurityDisplay == "display: none;") { connectionstring += "Integrated Security=SSPI;"; } else { connectionstring += "User ID=" + _username + ";Password=" + _password; } break; case "Sqlite": connectionstring = "Data Source=" + _fileName; break; } Uri uri = new Uri(NavigationManager.Uri); var config = new InstallConfig { DatabaseType = _databaseType, ConnectionString = connectionstring, Aliases = uri.Authority, HostEmail = _hostEmail, HostPassword = _hostPassword, HostName = UserNames.Host, TenantName = TenantNames.Master, IsNewTenant = true, SiteName = Constants.DefaultSite }; var installation = await InstallationService.Install(config); if (installation.Success) { NavigationManager.NavigateTo(uri.Scheme + "://" + uri.Authority, true); } else { _message = installation.Message; _loadingDisplay = "display: none;"; } } else { _message = Localizer["Please Enter All Fields And Ensure Passwords Match And Are Greater Than 5 Characters In Length"]; } } }