From 2cc4236cda638c8074dbda447a17bdb7671216dc Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Mon, 8 Apr 2019 15:43:19 +0300 Subject: [PATCH] First project creation --- .../docs/app/VoloDocs/Pages/Configure.cshtml | 6 ++ .../app/VoloDocs/Pages/Configure.cshtml.cs | 16 ++++++ modules/docs/app/VoloDocs/Pages/Index.cshtml | 14 +++-- .../docs/app/VoloDocs/Pages/Index.cshtml.cs | 57 ++++++++++++++----- 4 files changed, 75 insertions(+), 18 deletions(-) create mode 100644 modules/docs/app/VoloDocs/Pages/Configure.cshtml create mode 100644 modules/docs/app/VoloDocs/Pages/Configure.cshtml.cs 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()) { - + } - @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(); }