From 20fc53ad9dc4d3e6abd8c00b7fee913f7cd21ad8 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Fri, 5 Apr 2019 20:46:10 +0300 Subject: [PATCH] Created simulation library. --- .gitignore | 1 + .../Volo.ClientSimulation.Web.sln | 7 +++++ .../ClientSimulationWebModule.cs | 3 +- .../Pages/SimulationArea.cshtml | 22 ++++++++++--- .../Pages/SimulationArea.cshtml.cs | 21 ++++++++----- .../Pages/SimulationArea.js | 8 ++--- .../src/Volo.ClientSimulation.Web/Program.cs | 31 +++++++++++++++++-- .../Volo.ClientSimulation.Web.csproj | 10 ++++++ .../Volo.ClientSimulation.csproj | 12 +++++++ .../ClientSimulationModule.cs | 12 +++++++ .../Volo/ClientSimulation/Simulation.cs | 26 ++++++++++++++++ .../Volo/ClientSimulation/SimulationState.cs | 14 +++++++++ 12 files changed, 147 insertions(+), 20 deletions(-) create mode 100644 utils/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.csproj create mode 100644 utils/client-simulation/src/Volo.ClientSimulation/Volo/ClientSimulation/ClientSimulationModule.cs create mode 100644 utils/client-simulation/src/Volo.ClientSimulation/Volo/ClientSimulation/Simulation.cs create mode 100644 utils/client-simulation/src/Volo.ClientSimulation/Volo/ClientSimulation/SimulationState.cs 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 + +
+ 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 + } +}