Skip to content

Commit 9919d7a

Browse files
author
Lamond Lu
committed
add new page for assemblies
1 parent 9d9d31f commit 9919d7a

File tree

7 files changed

+73
-7
lines changed

7 files changed

+73
-7
lines changed

Mystique.Core.Mvc/Infrastructure/MystiqueStartup.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ public static void MystiqueSetup(this IServiceCollection services, IConfiguratio
2525
services.AddOptions();
2626
services.Configure<ConnectionStringSetting>(configuration.GetSection("ConnectionStringSetting"));
2727

28-
services.AddScoped<IMvcModuleSetup, MvcModuleSetup>();
28+
services.AddSingleton<IMvcModuleSetup, MvcModuleSetup>();
2929
services.AddScoped<IPluginManager, PluginManager>();
3030
services.AddScoped<IUnitOfWork, UnitOfWork>();
3131
services.AddSingleton<IActionDescriptorChangeProvider>(MystiqueActionDescriptorChangeProvider.Instance);
32-
services.AddScoped<IReferenceContainer, DefaultReferenceContainer>();
33-
services.AddScoped<IReferenceLoader, DefaultReferenceLoader>();
34-
services.AddScoped<IDependanceLoader, DefaultDependanceLoader>();
32+
services.AddSingleton<IReferenceContainer, DefaultReferenceContainer>();
33+
services.AddSingleton<IReferenceLoader, DefaultReferenceLoader>();
34+
services.AddSingleton<IDependanceLoader, DefaultDependanceLoader>();
3535
services.AddSingleton(MystiqueActionDescriptorChangeProvider.Instance);
3636

3737
var mvcBuilder = services.AddMvc();

Mystique.Core/Contracts/IReferenceContainer.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System;
1+
using Mystique.Core.DomainModel;
2+
using System;
23
using System.Collections.Generic;
34
using System.IO;
45
using System.Text;
@@ -7,6 +8,8 @@ namespace Mystique.Core.Contracts
78
{
89
public interface IReferenceContainer
910
{
11+
List<CachedReferenceItemKey> GetAll();
12+
1013
bool Exist(string name, string version);
1114

1215
void SaveStream(string name, string version, Stream stream);

Mystique.Core/Helpers/DefaultReferenceContainer.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
using Mystique.Core.Contracts;
22
using Mystique.Core.DomainModel;
3+
using Newtonsoft.Json;
4+
using System;
35
using System.Collections.Generic;
46
using System.IO;
57
using System.Linq;
@@ -8,7 +10,13 @@ namespace Mystique.Core.Helpers
810
{
911
public class DefaultReferenceContainer : IReferenceContainer
1012
{
11-
private Dictionary<CachedReferenceItemKey, Stream> _cachedReferences = new Dictionary<CachedReferenceItemKey, Stream>();
13+
private static Dictionary<CachedReferenceItemKey, Stream> _cachedReferences = new Dictionary<CachedReferenceItemKey, Stream>();
14+
15+
16+
public List<CachedReferenceItemKey> GetAll()
17+
{
18+
return _cachedReferences.Keys.ToList();
19+
}
1220

1321
public bool Exist(string name, string version)
1422
{
@@ -23,6 +31,7 @@ public void SaveStream(string name, string version, Stream stream)
2331
return;
2432
}
2533

34+
2635
_cachedReferences.Add(new CachedReferenceItemKey { ReferenceName = name, Version = version }, stream);
2736
}
2837

Mystique/Controllers/PluginsController.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@ public class PluginsController : Controller
1212
{
1313
private IPluginManager _pluginManager = null;
1414
private ApplicationPartManager _partManager = null;
15+
private IReferenceContainer _referenceContainer = null;
1516

16-
public PluginsController(IPluginManager pluginManager, ApplicationPartManager partManager)
17+
public PluginsController(IPluginManager pluginManager, ApplicationPartManager partManager, IReferenceContainer referenceContainer)
1718
{
1819
_pluginManager = pluginManager;
1920
_partManager = partManager;
21+
_referenceContainer = referenceContainer;
2022
}
2123

2224
private void RefreshControllerAction()
@@ -25,6 +27,13 @@ private void RefreshControllerAction()
2527
MystiqueActionDescriptorChangeProvider.Instance.TokenSource.Cancel();
2628
}
2729

30+
public IActionResult Assemblies()
31+
{
32+
var items = _referenceContainer.GetAll();
33+
34+
return View(items);
35+
}
36+
2837
// GET: /<controller>/
2938
public IActionResult Index()
3039
{

Mystique/Mystique.csproj

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,14 @@
77

88
<ItemGroup>
99
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.0.0" />
10+
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0" />
11+
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0">
12+
<PrivateAssets>all</PrivateAssets>
13+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
14+
</PackageReference>
15+
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.0.0" />
1016
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.7.12" />
17+
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.0.0" />
1118
<PackageReference Include="System.Data.SqlClient" Version="4.7.0" />
1219
</ItemGroup>
1320

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
@model List<Mystique.Core.DomainModel.CachedReferenceItemKey>
2+
@{
3+
ViewData["Title"] = "Index";
4+
}
5+
6+
<h1>Assemblies</h1>
7+
8+
<table class="table table-bordered">
9+
<thead>
10+
<tr>
11+
<th>Assembly Name</th>
12+
<th>Version</th>
13+
</tr>
14+
</thead>
15+
<tbody>
16+
@if (Model != null && Model.Count > 0)
17+
{
18+
foreach (var row in Model)
19+
{
20+
<tr>
21+
<td>@row.ReferenceName</td>
22+
<td>@row.Version</td>
23+
</tr>
24+
}
25+
}
26+
else
27+
{
28+
<tr>
29+
<td colspan="2">No Data.</td>
30+
</tr>
31+
}
32+
</tbody>
33+
</table>
34+
35+

Mystique/Views/Shared/_Layout.cshtml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@
3737
<li class="nav-item">
3838
<a class="nav-link text-dark" asp-area="" asp-controller="Plugins" asp-action="Index">Plugins</a>
3939
</li>
40+
<li class="nav-item">
41+
<a class="nav-link text-dark" asp-area="" asp-controller="Plugins" asp-action="Assemblies">Assemblies</a>
42+
</li>
4043
</ul>
4144
</div>
4245
</div>

0 commit comments

Comments
 (0)