コード例 #1
0
        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));
                }
        }
コード例 #2
0
        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());
                }
        }