Example #1
0
        public IMoBiCommand UpdateDistributedFormula(IDistributedParameter distributedParameter, IDistributionFormula newDistributedFormula, string formulaType, IBuildingBlock buildingBlock)
        {
            _context.Register(newDistributedFormula);
            _context.Register(distributedParameter.Formula);
            var command = new UpdateDistributedFormulaCommand(distributedParameter, newDistributedFormula, formulaType, buildingBlock).Run(_context);

            return(withUpdatedDefaultStateAndValueOrigin(command, newDistributedFormula, buildingBlock));
        }
Example #2
0
        protected override void ExecuteWith(IMoBiContext context)
        {
            _modelSerialization = context.Serialize(_simulationToUpdate.Model);
            _buildConfigurationSerialization = context.Serialize(_simulationToUpdate.MoBiBuildConfiguration);
            context.UnregisterSimulation(_simulationToUpdate);
            context.PublishEvent(new SimulationUnloadEvent(_simulationToUpdate));

            var oldIdCache = getEntityIdCache(_simulationToUpdate);

            _simulationToUpdate.Update(_updatedBuildConfiguration, _newModel);

            updateReferencesToSimulation(context);

            if (_simulationToUpdate.DiagramModel != null)
            {
                replaceDiagramModelNodeIds(_simulationToUpdate.DiagramModel, oldIdCache, getEntityIdCache(_simulationToUpdate));
            }

            context.Register(_simulationToUpdate);
            _wasChanged = _simulationToUpdate.HasChanged;
            _simulationToUpdate.HasChanged = _hasChanged;

            Description = AppConstants.Commands.UpdateCommandDescription(_changedBuildingBlockName, _simulationToUpdate, _changedBuildingBlockType);

            context.PublishEvent(new SimulationReloadEvent(_simulationToUpdate));
        }
Example #3
0
        public void Compute(IMoBiSimulation simulation)
        {
            var buildConfiguration = _buildConfigurationFactory.CreateFromReferencesUsedIn(simulation.MoBiBuildConfiguration);

            buildConfiguration.ShowProgress = false;

            _logger.AddDebug("Creating new simulation from loaded building blocks");
            var results = _modelConstructor.CreateModelFrom(buildConfiguration, "BatchRun");

            if (results.IsInvalid)
            {
                _logger.AddWarning(results.ValidationResult.Messages.SelectMany(x => x.Details).ToString());
            }

            var newSimulation = new MoBiSimulation
            {
                BuildConfiguration = buildConfiguration,
                Model = results.Model,
                Id    = "Sim"
            };

            _context.Register(newSimulation);
            _logger.AddDebug("Running simulation");
            _simModelManager.RunSimulation(newSimulation);
        }
        private void addContainerVolumeParameter(IMoBiContext context)
        {
            var volume = _container.GetSingleChildByName <IParameter>(Constants.Parameters.VOLUME);

            //switch from physical to logical. If volume was created here, this command is an inverse and volume should be removed
            if (_newContainerMode == ContainerMode.Logical)
            {
                if (_volumeParameterCreatedHere && volume != null)
                {
                    _container.RemoveChild(volume);
                    context.Unregister(volume);
                    context.PublishEvent(new RemovedEvent(volume, _container));
                }
            }
            //we switched from Logical to physical. Add volume parameter if not available
            else
            {
                if (volume != null)
                {
                    return;
                }
                var parameterFactory = context.Resolve <IParameterFactory>();
                volume = parameterFactory.CreateVolumeParameter();

                _container.Add(volume);
                context.Register(volume);
                _volumeParameterCreatedHere = true;
                context.PublishEvent(new AddedEvent <IParameter>(volume, _container));
            }
        }
Example #5
0
        public IContextMenu InitializeWith(IObjectBaseDTO dto, IPresenter presenter)
        {
            var simulation = dto.DowncastTo <SimulationViewItem>().Simulation;

            //a simulation might not be registered yet which is required to execute some of the action
            _context.Register(simulation);
            _allMenuItems = new List <IMenuBarItem>
            {
                createEditItem(simulation),
                createRenameItem(simulation),

                createConfigure(simulation),

                createRunItem(simulation),
                createParameterIdentificationItem(simulation),
                createSensitivityAnalysisItem(simulation),

                createStartPopulationSimulation(simulation),
                createSaveItem(simulation),
                createReportItemFor(simulation),
                createAddToJournal(simulation),
                exportSimulationResultsToExcel(simulation),
                createExportForMatlabItem(simulation),
                createMatlabODEExportItem(simulation),
                createDebugReportItem(simulation),
                createExportModelPartsItem(simulation),

                createImportReactionParameters(simulation),
                createDeleteItem(simulation),
                createDeleteAllResultsItem(simulation),
            };

            return(this);
        }
        private void addDefault <T>(string defaultName, Func <T> buildingBlockCreator) where T : IBuildingBlock
        {
            var project       = _context.CurrentProject;
            var buildingBlock = buildingBlockCreator().WithName(defaultName);

            project.AddBuildingBlock(buildingBlock);
            _context.Register(buildingBlock);
        }
Example #7
0
        protected override void ExecuteWith(IMoBiContext context)
        {
            var project = context.CurrentProject;

            context.Register(_simulation);
            project.AddSimulation(_simulation);
            context.PublishEvent(new SimulationAddedEvent(_simulation));
        }
Example #8
0
 public void should_be_able_to_create_simulation()
 {
     _results.State.ShouldNotBeEqualTo(ValidationState.Invalid, _results.ValidationResult.Messages.SelectMany(x => x.Details).ToString("\n"));
     _simulation = new MoBiSimulation {
         BuildConfiguration = _buildConfiguration, Model = _results.Model
     };
     _simulation.Id = "Sim";
     _context.Register(_simulation);
     _simModelManager.RunSimulation(_simulation);
 }
Example #9
0
        protected override void Context()
        {
            base.Context();
            var simulationTransfer = LoadPKML <SimulationTransfer>("523_Export_S1");

            _context    = IoC.Resolve <IMoBiContext>();
            _simulation = simulationTransfer.Simulation as IMoBiSimulation;
            _context.Register(_simulation);
            _context.Get <IFormula>(_simulation.Model.Root.GetAllChildren <IUsingFormula>(x => x.Formula.IsCachable()).FirstOrDefault().Formula.Id).ShouldNotBeNull();
        }
Example #10
0
        protected override void ExecuteWith(IMoBiContext context)
        {
            var project = context.CurrentProject;

            context.Register(_buildingBlock);
            addToProject(project);

            if (!Silent)
            {
                context.PublishEvent(new AddedEvent <T>(_buildingBlock, project));
            }
        }
        protected override void ExecuteWith(IMoBiContext context)
        {
            base.ExecuteWith(context);
            Description = AppConstants.Commands.AddToDescription(ObjectType, _itemToAdd.Name, _parent.Name, context.TypeFor(_buildingBlock), _buildingBlock.Name);
            context.Register(_itemToAdd);
            AddTo(_itemToAdd, _parent, context);

            if (!Silent)
            {
                context.PublishEvent(new AddedEvent <TChild>(_itemToAdd, _parent));
            }
        }
 public void should_update_object_registration()
 {
     A.CallTo(() => _context.Register(_simulation)).MustHaveHappened();
     A.CallTo(() => _context.UnregisterSimulation(_simulation)).MustHaveHappened();
 }