using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Volo.ClientSimulation.Snapshot; namespace Volo.ClientSimulation.Pages.ClientSimulation { public class SimulationAreaModel : PageModel { public SimulationSnapshot Snapshot { get; private set; } protected Simulation Simulation { get; } public SimulationAreaModel(Simulation simulation) { Simulation = simulation; } public virtual Task OnGetAsync() { Snapshot = Simulation.CreateSnapshot(); return Task.FromResult(Page()); } public virtual async Task OnPostStartAsync() { Simulation.Start(); return new NoContentResult(); } public virtual async Task OnPostStopAsync() { Simulation.Stop(); return new NoContentResult(); } } }