@namespace Oqtane.UI
@inject NavigationManager NavigationManager
@inject IInstallationService InstallationService
@inject ISiteService SiteService
@inject IUserService UserService
Application Administrator
@((MarkupString) _message)
@code {
private string _databaseType = "LocalDB";
private string _serverName = "(LocalDb)\\MSSQLLocalDB";
private string _databaseName = "Oqtane-" + DateTime.UtcNow.ToString("yyyyMMddHHmm");
private string _username = "";
private string _password = "";
private string _hostUsername = Constants.HostUser;
private string _hostPassword = "";
private string _confirmPassword = "";
private string _hostEmail = "";
private string _message = "";
private string _integratedSecurityDisplay = "display: none;";
private string _loadingDisplay = "display: none;";
private void SetIntegratedSecurity(ChangeEventArgs e)
{
_integratedSecurityDisplay = Convert.ToBoolean((string)e.Value)
? "display: none;"
: string.Empty;
}
private async Task Install()
{
if (_serverName != "" && _databaseName != "" && _hostUsername != "" && _hostPassword.Length >= 6 && _hostPassword == _confirmPassword && _hostEmail != "")
{
_loadingDisplay = "";
StateHasChanged();
var connectionstring = "";
if (_databaseType == "LocalDB")
{
connectionstring = "Data Source=" + _serverName + ";AttachDbFilename=|DataDirectory|\\" + _databaseName + ".mdf;Initial Catalog=" + _databaseName + ";Integrated Security=SSPI;";
}
else
{
connectionstring = "Data Source=" + _serverName + ";Initial Catalog=" + _databaseName + ";";
if (_integratedSecurityDisplay == "display: none;")
{
connectionstring += "Integrated Security=SSPI;";
}
else
{
connectionstring += "User ID=" + _username + ";Password=" + _password;
}
}
Uri uri = new Uri(NavigationManager.Uri);
var config = new InstallConfig
{
ConnectionString = connectionstring,
Aliases = uri.Authority,
HostEmail = _hostEmail,
HostPassword = _hostPassword,
HostName = Constants.HostUser,
TenantName = Constants.MasterTenant,
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 = "Please Enter All Fields And Ensure Passwords Match And Are Greater Than 5 Characters In Length
";
}
}
}