diff --git a/.gitignore b/.gitignore
index 9d3c3957aa..d21e097a8f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -294,3 +294,4 @@ samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/Logs/logs.txt
samples/MicroserviceDemo/applications/PublicWebSite.Host/Logs/logs.txt
samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/Logs/logs.txt
samples/MicroserviceDemo/microservices/BloggingService.Host/Logs/logs.txt
+utils/client-simulation/src/Volo.ClientSimulation.Web/Logs/logs.txt
diff --git a/utils/client-simulation/Volo.ClientSimulation.Web.sln b/utils/client-simulation/Volo.ClientSimulation.Web.sln
index a88d910396..869ce6d932 100644
--- a/utils/client-simulation/Volo.ClientSimulation.Web.sln
+++ b/utils/client-simulation/Volo.ClientSimulation.Web.sln
@@ -7,6 +7,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{42503D63-D29
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.ClientSimulation.Web", "src\Volo.ClientSimulation.Web\Volo.ClientSimulation.Web.csproj", "{7579B444-3411-4E3B-8DF3-19684C1F34C2}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.ClientSimulation", "src\Volo.ClientSimulation\Volo.ClientSimulation.csproj", "{BB780A98-727D-49CF-9A4C-91E6EA7047AD}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -17,12 +19,17 @@ Global
{7579B444-3411-4E3B-8DF3-19684C1F34C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7579B444-3411-4E3B-8DF3-19684C1F34C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7579B444-3411-4E3B-8DF3-19684C1F34C2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BB780A98-727D-49CF-9A4C-91E6EA7047AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BB780A98-727D-49CF-9A4C-91E6EA7047AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BB780A98-727D-49CF-9A4C-91E6EA7047AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BB780A98-727D-49CF-9A4C-91E6EA7047AD}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{7579B444-3411-4E3B-8DF3-19684C1F34C2} = {42503D63-D292-4A18-8ECE-8270167DD842}
+ {BB780A98-727D-49CF-9A4C-91E6EA7047AD} = {42503D63-D292-4A18-8ECE-8270167DD842}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {1AF598E1-2012-47B4-A591-ADC9F327600A}
diff --git a/utils/client-simulation/src/Volo.ClientSimulation.Web/ClientSimulationWebModule.cs b/utils/client-simulation/src/Volo.ClientSimulation.Web/ClientSimulationWebModule.cs
index b2a44588ea..10ca99dbc7 100644
--- a/utils/client-simulation/src/Volo.ClientSimulation.Web/ClientSimulationWebModule.cs
+++ b/utils/client-simulation/src/Volo.ClientSimulation.Web/ClientSimulationWebModule.cs
@@ -9,7 +9,8 @@ namespace Volo.ClientSimulation.Web
{
[DependsOn(
typeof(AbpAspNetCoreMvcUiBasicThemeModule),
- typeof(AbpAutofacModule)
+ typeof(AbpAutofacModule),
+ typeof(ClientSimulationModule)
)]
public class ClientSimulationWebModule : AbpModule
{
diff --git a/utils/client-simulation/src/Volo.ClientSimulation.Web/Pages/SimulationArea.cshtml b/utils/client-simulation/src/Volo.ClientSimulation.Web/Pages/SimulationArea.cshtml
index ae7f397d92..0dd07f8453 100644
--- a/utils/client-simulation/src/Volo.ClientSimulation.Web/Pages/SimulationArea.cshtml
+++ b/utils/client-simulation/src/Volo.ClientSimulation.Web/Pages/SimulationArea.cshtml
@@ -1,10 +1,22 @@
-@page
+@page "{handler?}"
@{
Layout = null;
}
-@using Volo.Abp
+@using Volo.ClientSimulation
@model Volo.ClientSimulation.Web.Pages.SimulationAreaModel
-Start
-Stop
+
+
+
+
+ @Model.Simulation.State
+
+
+
+
-@RandomHelper.GetRandom(1, 111)
\ No newline at end of file
+
+
\ No newline at end of file
diff --git a/utils/client-simulation/src/Volo.ClientSimulation.Web/Pages/SimulationArea.cshtml.cs b/utils/client-simulation/src/Volo.ClientSimulation.Web/Pages/SimulationArea.cshtml.cs
index 63e883d137..5c7defc384 100644
--- a/utils/client-simulation/src/Volo.ClientSimulation.Web/Pages/SimulationArea.cshtml.cs
+++ b/utils/client-simulation/src/Volo.ClientSimulation.Web/Pages/SimulationArea.cshtml.cs
@@ -1,6 +1,3 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
@@ -9,18 +6,28 @@ namespace Volo.ClientSimulation.Web.Pages
{
public class SimulationAreaModel : PageModel
{
- public async Task OnGetAsync()
+ public Simulation Simulation { get; }
+
+ public SimulationAreaModel(Simulation simulation)
{
+ Simulation = simulation;
}
- public async Task PostStartAsync()
+ public Task OnGetAsync()
{
-
+ return Task.CompletedTask;
}
- public async Task PostStopAsync()
+ public async Task OnPostStartAsync()
{
+ await Simulation.StartAsync();
+ return new NoContentResult();
+ }
+ public async Task OnPostStopAsync()
+ {
+ await Simulation.StopAsync();
+ return new NoContentResult();
}
}
}
\ No newline at end of file
diff --git a/utils/client-simulation/src/Volo.ClientSimulation.Web/Pages/SimulationArea.js b/utils/client-simulation/src/Volo.ClientSimulation.Web/Pages/SimulationArea.js
index b96cca148e..e94f965ce5 100644
--- a/utils/client-simulation/src/Volo.ClientSimulation.Web/Pages/SimulationArea.js
+++ b/utils/client-simulation/src/Volo.ClientSimulation.Web/Pages/SimulationArea.js
@@ -4,17 +4,17 @@
var $mainContainer = null;
function refreshSimulationArea() {
- $.get('/SimulationArea').done(
- function (result) {
+ $.get('/SimulationArea')
+ .done(function(result) {
$mainContainer.html(result);
- }).always(function () {
+ })
+ .always(function() {
setTimeout(refreshSimulationArea, 1000);
});
}
SimulationArea.init = function ($container) {
$mainContainer = $container;
- console.log('Simulation initialized');
setTimeout(refreshSimulationArea, 1000);
};
diff --git a/utils/client-simulation/src/Volo.ClientSimulation.Web/Program.cs b/utils/client-simulation/src/Volo.ClientSimulation.Web/Program.cs
index 034a01377e..e6999270da 100644
--- a/utils/client-simulation/src/Volo.ClientSimulation.Web/Program.cs
+++ b/utils/client-simulation/src/Volo.ClientSimulation.Web/Program.cs
@@ -1,14 +1,38 @@
-using System.IO;
+using System;
+using System.IO;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
+using Serilog;
+using Serilog.Events;
namespace Volo.ClientSimulation.Web
{
public class Program
{
- public static void Main(string[] args)
+ public static int Main(string[] args)
{
- BuildWebHostInternal(args).Run();
+ Log.Logger = new LoggerConfiguration()
+ .MinimumLevel.Debug()
+ .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
+ .Enrich.FromLogContext()
+ .WriteTo.File("Logs/logs.txt")
+ .CreateLogger();
+
+ try
+ {
+ Log.Information("Starting web host.");
+ BuildWebHostInternal(args).Run();
+ return 0;
+ }
+ catch (Exception ex)
+ {
+ Log.Fatal(ex, "Host terminated unexpectedly!");
+ return 1;
+ }
+ finally
+ {
+ Log.CloseAndFlush();
+ }
}
public static IWebHost BuildWebHostInternal(string[] args) =>
@@ -17,6 +41,7 @@ namespace Volo.ClientSimulation.Web
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup()
+ .UseSerilog()
.Build();
}
}
diff --git a/utils/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.csproj b/utils/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.csproj
index c38936b20d..d654badfe3 100644
--- a/utils/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.csproj
+++ b/utils/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.csproj
@@ -7,11 +7,21 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/utils/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.csproj b/utils/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.csproj
new file mode 100644
index 0000000000..2917b65816
--- /dev/null
+++ b/utils/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.csproj
@@ -0,0 +1,12 @@
+
+
+
+ netcoreapp2.2
+
+
+
+
+
+
+
+
diff --git a/utils/client-simulation/src/Volo.ClientSimulation/Volo/ClientSimulation/ClientSimulationModule.cs b/utils/client-simulation/src/Volo.ClientSimulation/Volo/ClientSimulation/ClientSimulationModule.cs
new file mode 100644
index 0000000000..f44a4a5cc1
--- /dev/null
+++ b/utils/client-simulation/src/Volo.ClientSimulation/Volo/ClientSimulation/ClientSimulationModule.cs
@@ -0,0 +1,12 @@
+using Volo.Abp.Http.Client.IdentityModel;
+using Volo.Abp.Modularity;
+
+namespace Volo.ClientSimulation
+{
+ [DependsOn(
+ typeof(AbpHttpClientIdentityModelModule)
+ )]
+ public class ClientSimulationModule : AbpModule
+ {
+ }
+}
diff --git a/utils/client-simulation/src/Volo.ClientSimulation/Volo/ClientSimulation/Simulation.cs b/utils/client-simulation/src/Volo.ClientSimulation/Volo/ClientSimulation/Simulation.cs
new file mode 100644
index 0000000000..dc0ca3e51f
--- /dev/null
+++ b/utils/client-simulation/src/Volo.ClientSimulation/Volo/ClientSimulation/Simulation.cs
@@ -0,0 +1,26 @@
+using System.Threading.Tasks;
+using Volo.Abp.DependencyInjection;
+
+namespace Volo.ClientSimulation
+{
+ public class Simulation : ISingletonDependency
+ {
+ public SimulationState State { get; private set; }
+
+ public Task StartAsync()
+ {
+ State = SimulationState.Starting;
+ State = SimulationState.Started;
+
+ return Task.CompletedTask;
+ }
+
+ public Task StopAsync()
+ {
+ State = SimulationState.Stopping;
+ State = SimulationState.Stopped;
+
+ return Task.CompletedTask;
+ }
+ }
+}
diff --git a/utils/client-simulation/src/Volo.ClientSimulation/Volo/ClientSimulation/SimulationState.cs b/utils/client-simulation/src/Volo.ClientSimulation/Volo/ClientSimulation/SimulationState.cs
new file mode 100644
index 0000000000..133748af1f
--- /dev/null
+++ b/utils/client-simulation/src/Volo.ClientSimulation/Volo/ClientSimulation/SimulationState.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Volo.ClientSimulation
+{
+ public enum SimulationState
+ {
+ Stopped,
+ Starting,
+ Started,
+ Stopping
+ }
+}