@namespace Oqtane.Shared
@inject NavigationManager NavigationManager
@inject IInstallationService InstallationService
@inject ISiteService SiteService
@inject IUserService UserService
Database Configuration
Application Administrator
@((MarkupString)@Message)
@code {
private string DatabaseType = "LocalDB";
private string ServerName = "(LocalDb)\\MSSQLLocalDB";
private string DatabaseName = "Oqtane-" + DateTime.Now.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)
{
if (Convert.ToBoolean((string)e.Value))
{
IntegratedSecurityDisplay = "display: none;";
}
else
{
IntegratedSecurityDisplay = "";
}
}
private async Task Install()
{
if (HostUsername != "" && HostPassword.Length >= 6 && HostPassword == ConfirmPassword && HostEmail != "")
{
LoadingDisplay = "";
StateHasChanged();
string 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;
}
}
GenericResponse response = await InstallationService.Install(connectionstring);
if (response.Success)
{
Site site = new Site();
site.TenantId = -1; // will be populated on server
site.Name = "Default Site";
site.LogoFileId = null;
site.DefaultThemeType = Constants.DefaultTheme;
site.DefaultLayoutType = Constants.DefaultLayout;
site.DefaultContainerType = Constants.DefaultContainer;
site = await SiteService.AddSiteAsync(site);
User user = new User();
user.SiteId = site.SiteId;
user.Username = HostUsername;
user.Password = HostPassword;
user.Email = HostEmail;
user.DisplayName = HostUsername;
user = await UserService.AddUserAsync(user);
NavigationManager.NavigateTo("", true);
}
else
{
Message = "" + response.Message + "
";
LoadingDisplay = "display: none;";
}
}
else
{
Message = "Please Enter All Fields And Ensure Passwords Match And Are Greater Than 5 Characters In Length
";
}
}
}