diff --git a/modules/docs/app/VoloDocs/Pages/Configure.cshtml b/modules/docs/app/VoloDocs/Pages/Configure.cshtml
new file mode 100644
index 0000000000..aa1f51a80c
--- /dev/null
+++ b/modules/docs/app/VoloDocs/Pages/Configure.cshtml
@@ -0,0 +1,6 @@
+@page
+@model VoloDocs.Pages.ConfigureModel
+@{
+}
+
+CONFIGURE
diff --git a/modules/docs/app/VoloDocs/Pages/Configure.cshtml.cs b/modules/docs/app/VoloDocs/Pages/Configure.cshtml.cs
new file mode 100644
index 0000000000..d1c6f6b589
--- /dev/null
+++ b/modules/docs/app/VoloDocs/Pages/Configure.cshtml.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.RazorPages;
+
+namespace VoloDocs.Pages
+{
+ public class ConfigureModel : PageModel
+ {
+ public void OnGet()
+ {
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/docs/app/VoloDocs/Pages/Index.cshtml b/modules/docs/app/VoloDocs/Pages/Index.cshtml
index f8c5e1dfec..6cd2cbaffe 100644
--- a/modules/docs/app/VoloDocs/Pages/Index.cshtml
+++ b/modules/docs/app/VoloDocs/Pages/Index.cshtml
@@ -39,13 +39,17 @@
- @if (Model.Projects.IsNullOrEmpty())
+ @if (!Model.Projects.Any())
{
-
- No project!
-
+
+
No project!
+
Welcome to VoloDocs! There`s no defined project yet.
+
+
Click here to start your first project
+
+
}
- @if (Model.Projects.Count > 0)
+ else if (Model.Projects.Count > 1)
{
@L["Projects"]
diff --git a/modules/docs/app/VoloDocs/Pages/Index.cshtml.cs b/modules/docs/app/VoloDocs/Pages/Index.cshtml.cs
index 226e6cf642..2c7ab66175 100644
--- a/modules/docs/app/VoloDocs/Pages/Index.cshtml.cs
+++ b/modules/docs/app/VoloDocs/Pages/Index.cshtml.cs
@@ -4,6 +4,10 @@ using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
+using Microsoft.Extensions.Options;
+using Volo.Abp.Application.Dtos;
+using Volo.Abp.Data;
+using Volo.Abp.Users;
using Volo.Docs;
using Volo.Docs.Projects;
@@ -12,33 +16,60 @@ namespace VoloDocs.Pages
public class IndexModel : PageModel
{
public IReadOnlyList Projects { get; set; }
- private readonly IProjectAppService _projectAppService;
+ public string ConnectionString { get; set; }
+ public string CreateProjectLink { get; set; }
+
-
- public IndexModel(IProjectAppService projectAppService)
+ private readonly IProjectAppService _projectAppService;
+ private readonly DbConnectionOptions _dbConnectionOptions;
+ private readonly ICurrentUser _currentUser;
+
+ public IndexModel(IProjectAppService projectAppService,
+ IOptionsSnapshot dbConnectionOptions, ICurrentUser currentUser)
{
_projectAppService = projectAppService;
+ _currentUser = currentUser;
+ _dbConnectionOptions = dbConnectionOptions.Value;
}
public async Task OnGet()
{
- //var listResult = await _projectAppService.GetListAsync();
+ ConnectionString = _dbConnectionOptions.ConnectionStrings.Default;
+ CreateProjectLink = _currentUser.Id.HasValue
+ ? "/Docs/Admin/Projects"
+ : "/Account/Login?returnUrl=/Docs/Admin/Projects";
+
+ if (string.IsNullOrWhiteSpace(ConnectionString))
+ {
+ return RedirectToPage("./Configure");
+ }
- //if (listResult.Items.Any())
+ Projects = (await _projectAppService.GetListAsync()).Items;
+ if (Projects.Count == 1)
+ {
+ return RedirectToPage("./Project/Index", new
+ {
+ projectName = Projects[0].ShortName,
+ version = DocsAppConsts.Latest,
+ documentName = Projects[0].DefaultDocumentName
+ });
+ }
+
+
+
+
+ //if (!Projects.Any())
//{
- // return RedirectToPage("./Project/Index", new
+ // if (_currentUser.Id.HasValue)
// {
- // projectName = listResult.Items[0].ShortName,
- // version = DocsAppConsts.Latest,
- // documentName = listResult.Items[0].DefaultDocumentName
- // });
- //}
- //else
- //{
+ // return Redirect("./Docs/Admin/Projects");
+ // }
+ // return Redirect("./account/login?returnUrl=/Docs/Admin/Projects");
//}
+
return Page();
}