Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes #2158 add check box disable run #2159

Merged
merged 4 commits into from
Apr 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions src/PKSim.Assets/PKSimConstants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2588,8 +2588,9 @@ public static string DragFieldMessage(string fieldType)

public static string LoadObjectFromSnapshot(string objectType) => $"Load {objectType.ToLowerInvariant()} from snapshot";

public static string LoadFromSnapshot => "Load Snapshot";
public static string SelectExpressionProfile => "Select an expression profile";
public static string LoadFromSnapshot = "Load Snapshot";
public static string SelectExpressionProfile = "Select an expression profile";
public static string RunSimulations = "Run Simulations";

public static string NumberOfTemplatesSelectedIs(int number, string templateType) => $"{number} {templateType.PluralizeIf(number).ToLowerInvariant()} selected";

Expand Down
5 changes: 2 additions & 3 deletions src/PKSim.CLI.Core/Services/SnapshotRunner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,6 @@ public class SnapshotRunner : IBatchRunner<SnapshotRunOptions>
//For testing purposes only
public Func<string, string, FileInfo[]> AllFilesFrom { get; set; }



public SnapshotRunner(
ICoreWorkspace workspace,
ISnapshotTask snapshotTask,
Expand All @@ -53,7 +51,7 @@ public SnapshotRunner(
_workspacePersistor = workspacePersistor;
_logger = logger;
AllFilesFrom = allFilesFrom;
}
}

public async Task RunBatchAsync(SnapshotRunOptions runOptions)
{
Expand Down Expand Up @@ -93,6 +91,7 @@ private async Task startSnapshotRun(IReadOnlyList<FileMap> fileMaps, Func<FileMa
_workspace.Project = null;
}
}

var end = DateTime.UtcNow;
var timeSpent = end - begin;

Expand Down
6 changes: 3 additions & 3 deletions src/PKSim.Core/Snapshots/Services/SnapshotTask.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public interface ISnapshotTask

Task<IEnumerable<T>> LoadModelsFromSnapshotFileAsync<T>(string fileName) where T : class;

Task<PKSimProject> LoadProjectFromSnapshotFileAsync(string fileName);
Task<PKSimProject> LoadProjectFromSnapshotFileAsync(string fileName, bool runSimulations = true);

Task<PKSimProject> LoadProjectFromSnapshotAsync(Project snapshot, bool runSimulations);

Expand Down Expand Up @@ -175,10 +175,10 @@ private async Task<T> loadModelFromSnapshot<T>(object snapshot)
return models.FirstOrDefault();
}

public async Task<PKSimProject> LoadProjectFromSnapshotFileAsync(string fileName)
public async Task<PKSimProject> LoadProjectFromSnapshotFileAsync(string fileName, bool runSimulations = true)
{
var projectSnapshot = await LoadSnapshotFromFileAsync<Project>(fileName);
var project = await LoadProjectFromSnapshotAsync(projectSnapshot, runSimulations: true);
var project = await LoadProjectFromSnapshotAsync(projectSnapshot, runSimulations);
return projectWithUpdatedProperties(project, FileHelper.FileNameFromFileFullPath(fileName));
}

Expand Down
11 changes: 10 additions & 1 deletion src/PKSim.Presentation/DTO/Snapshots/LoadFromSnapshotDTO.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using OSPSuite.Core.Domain;
using NPOI.HSSF.Util;
using OSPSuite.Core.Domain;
using OSPSuite.Presentation.DTO;
using OSPSuite.Utility.Validation;

Expand All @@ -7,13 +8,21 @@ namespace PKSim.Presentation.DTO.Snapshots
public class LoadFromSnapshotDTO : ValidatableDTO
{
private string _snapshotFile;
//By default, always run simulations
private bool _runSimulations = true;

public virtual string SnapshotFile
{
get => _snapshotFile;
set => SetProperty(ref _snapshotFile, value);
}

public virtual bool RunSimulations
{
get => _runSimulations;
set => SetProperty(ref _runSimulations, value);
}

public LoadFromSnapshotDTO()
{
Rules.Add(AllRules.FileExists);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using System.Linq;
using System.Threading.Tasks;
using OSPSuite.Assets;
using OSPSuite.Core;
using OSPSuite.Core.Domain;
using OSPSuite.Core.Domain.Services;
using OSPSuite.Core.Services;
Expand Down Expand Up @@ -56,7 +57,8 @@ public LoadFromSnapshotPresenter(
IDialogCreator dialogCreator,
IObjectTypeResolver objectTypeResolver,
IOSPSuiteLogger logger,
IEventPublisher eventPublisher) : base(view)
IEventPublisher eventPublisher,
IStartOptions startOptions) : base(view)
{
_snapshotTask = snapshotTask;
_dialogCreator = dialogCreator;
Expand All @@ -68,6 +70,7 @@ public LoadFromSnapshotPresenter(
_view.Caption = PKSimConstants.UI.LoadObjectFromSnapshot(typeToLoad);
_view.AddLogView(_logPresenter.BaseView);
_view.BindTo(_loadFromSnapshotDTO);
_view.RunSimulationsSwitchVisible = startOptions.IsDeveloperMode;
}

public override bool ShouldClose
Expand Down Expand Up @@ -119,7 +122,7 @@ public async Task StartAsync()
_logPresenter.ClearLog();
_view.EnableButtons(false);
_logger.AddInfo(PKSimConstants.Information.LoadingSnapshot(_loadFromSnapshotDTO.SnapshotFile, typeToLoad));
await Task.Run(() => PerformLoadAsync(_loadFromSnapshotDTO.SnapshotFile));
await Task.Run(performLoadAsync);
_logger.AddInfo(PKSimConstants.Information.SnapshotLoaded(typeToLoad));
}
catch (Exception e)
Expand All @@ -137,10 +140,10 @@ public async Task StartAsync()

public string SnapshotFile => _loadFromSnapshotDTO.SnapshotFile;

protected async Task PerformLoadAsync(string snapshotFile)
private async Task performLoadAsync()
{
ClearModel();
_model = await LoadModelAsync(snapshotFile);
_model = await LoadModelAsync(_loadFromSnapshotDTO);
}

protected virtual void ClearModel()
Expand All @@ -154,9 +157,9 @@ protected virtual void ClearModel(IEnumerable<T> model)
/*override if something needs to be done for specific loading case*/
}

protected virtual Task<IEnumerable<T>> LoadModelAsync(string snapshotFile)
protected virtual Task<IEnumerable<T>> LoadModelAsync(LoadFromSnapshotDTO loadFromSnapshotDTO)
{
return _snapshotTask.LoadModelsFromSnapshotFileAsync<T>(snapshotFile);
return _snapshotTask.LoadModelsFromSnapshotFileAsync<T>(loadFromSnapshotDTO.SnapshotFile);
}

protected override void Cleanup()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using OSPSuite.Core;
using OSPSuite.Core.Domain.Services;
using OSPSuite.Core.Services;
using OSPSuite.Presentation.Presenters;
using OSPSuite.Utility.Events;
using PKSim.Core.Model;
using PKSim.Core.Services;
using PKSim.Core.Snapshots.Services;
using PKSim.Presentation.DTO.Snapshots;
using PKSim.Presentation.Views.Snapshots;

namespace PKSim.Presentation.Presenters.Snapshots
Expand All @@ -26,15 +28,16 @@ public class LoadProjectFromSnapshotPresenter : LoadFromSnapshotPresenter<PKSimP
private readonly IQualiticationPlanRunner _qualificationPlanRunner;
private readonly IRegistrationTask _registrationTask;

public LoadProjectFromSnapshotPresenter(ILoadFromSnapshotView view,
ILogPresenter logPresenter,
ISnapshotTask snapshotTask,
IDialogCreator dialogCreator,
IObjectTypeResolver objectTypeResolver,
IOSPSuiteLogger logger,
public LoadProjectFromSnapshotPresenter(ILoadFromSnapshotView view,
ILogPresenter logPresenter,
ISnapshotTask snapshotTask,
IDialogCreator dialogCreator,
IObjectTypeResolver objectTypeResolver,
IOSPSuiteLogger logger,
IEventPublisher eventPublisher,
IQualiticationPlanRunner qualificationPlanRunner,
IRegistrationTask registrationTask) : base(view, logPresenter, snapshotTask, dialogCreator, objectTypeResolver, logger, eventPublisher)
IRegistrationTask registrationTask,
IStartOptions startOptions) : base(view, logPresenter, snapshotTask, dialogCreator, objectTypeResolver, logger, eventPublisher, startOptions)
{
_qualificationPlanRunner = qualificationPlanRunner;
_registrationTask = registrationTask;
Expand All @@ -46,9 +49,9 @@ public PKSimProject LoadProject()
return models?.FirstOrDefault();
}

protected override async Task<IEnumerable<PKSimProject>> LoadModelAsync(string snapshotFile)
protected override async Task<IEnumerable<PKSimProject>> LoadModelAsync(LoadFromSnapshotDTO loadFromSnapshotDTO)
{
var project = await _snapshotTask.LoadProjectFromSnapshotFileAsync(snapshotFile);
var project = await _snapshotTask.LoadProjectFromSnapshotFileAsync(loadFromSnapshotDTO.SnapshotFile, loadFromSnapshotDTO.RunSimulations);
_registrationTask.RegisterProject(project);
await runQualificationPlans(project);
return new[] { project };
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using OSPSuite.Core;
using OSPSuite.Core.Domain.Services;
using OSPSuite.Core.Services;
using OSPSuite.Presentation.Presenters;
Expand All @@ -9,6 +10,7 @@
using PKSim.Core.Services;
using PKSim.Core.Snapshots.Mappers;
using PKSim.Core.Snapshots.Services;
using PKSim.Presentation.DTO.Snapshots;
using PKSim.Presentation.Views.Snapshots;

namespace PKSim.Presentation.Presenters.Snapshots
Expand Down Expand Up @@ -36,8 +38,9 @@ public LoadSimulationFromSnapshotPresenter(
IOSPSuiteLogger logger,
IEventPublisher eventPublisher,
SimulationMapper simulationMapper,
IPKSimProjectRetriever projectRetriever
) : base(view, logPresenter, snapshotTask, dialogCreator, objectTypeResolver, logger, eventPublisher)
IPKSimProjectRetriever projectRetriever,
IStartOptions startOptions
) : base(view, logPresenter, snapshotTask, dialogCreator, objectTypeResolver, logger, eventPublisher, startOptions)
{
_simulationMapper = simulationMapper;
_projectRetriever = projectRetriever;
Expand All @@ -49,10 +52,10 @@ public Simulation LoadSimulation()
return models?.FirstOrDefault();
}

protected override async Task<IEnumerable<Simulation>> LoadModelAsync(string snapshotFile)
protected override async Task<IEnumerable<Simulation>> LoadModelAsync(LoadFromSnapshotDTO loadFromSnapshotDTO)
{
var snapshots = await _snapshotTask.LoadSnapshotsAsync<PKSim.Core.Snapshots.Simulation>(snapshotFile);
var simulationContext = new SimulationContext(_projectRetriever.Current, run: true);
var snapshots = await _snapshotTask.LoadSnapshotsAsync<PKSim.Core.Snapshots.Simulation>(loadFromSnapshotDTO.SnapshotFile);
var simulationContext = new SimulationContext(_projectRetriever.Current, run: loadFromSnapshotDTO.RunSimulations);
var tasks = snapshots.Select(x => _simulationMapper.MapToModel(x, simulationContext));
return await Task.WhenAll(tasks);
}
Expand Down
2 changes: 1 addition & 1 deletion src/PKSim.Presentation/StartOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public class StartOptions : IStartOptions
/// <summary>
/// Specifies if the app should be started in developer mode. Default is <c>false</c>
/// </summary>
public bool IsDeveloperMode { get; private set; } = false;
public bool IsDeveloperMode { get; private set; }

/// <summary>
/// Loading a project or a simulation file
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@ public interface ILoadFromSnapshotView : IModalView<ILoadFromSnapshotPresenter>
void AddLogView(IView view);
void BindTo(LoadFromSnapshotDTO loadFromSnapshotDTO);
void EnableButtons(bool cancelEnabled, bool okEnabled = false, bool startEnabled=false);
bool RunSimulationsSwitchVisible { set; }
}
}
Loading