public ICommand EditMolecule(IndividualMolecule molecule, TSimulationSubject simulationSubject) { using (_geneExpressionsDatabasePathManager.ConnectToDatabaseFor(simulationSubject.Species)) using (var presenter = _applicationController.Start <IProteinExpressionsPresenter>()) { presenter.InitializeSettings(_queryExpressionSettingsMapper.MapFrom(molecule)); presenter.Title = PKSimConstants.UI.EditProteinExpression; bool proteinEdited = presenter.Start(); if (!proteinEdited) { return(new PKSimEmptyCommand()); } var editedProtein = _executionContext.Clone(molecule); var queryResults = presenter.GetQueryResults(); //name has changed, needs to ensure unicity if (!string.Equals(editedProtein.Name, queryResults.ProteinName)) { editedProtein.Name = _containerTask.CreateUniqueName(simulationSubject, queryResults.ProteinName, true); } editedProtein.QueryConfiguration = queryResults.QueryConfiguration; return(editMolecule(molecule, editedProtein, queryResults, simulationSubject)); } }
public QueryExpressionResults QueryDatabase(ExpressionProfile expressionProfile, string moleculeName) { var(molecule, individual) = expressionProfile; using (_geneExpressionsDatabasePathManager.ConnectToDatabaseFor(individual.Species)) using (var presenter = _applicationController.Start <IProteinExpressionsPresenter>()) { presenter.InitializeSettings(_queryExpressionSettingsMapper.MapFrom(molecule, individual, moleculeName)); presenter.Title = PKSimConstants.UI.EditProteinExpression; var success = presenter.Start(); if (!success) { return(null); } return(presenter.GetQueryResults()); } }