Example #1
0
        private ModuleState(_ModuleStateDTO dto, Simulation simulation)
        {
            TraceDataPlotStates = dto.TraceDataPlotStates.IsNullOrEmpty()
        ? DefaultTraceDataPlotStates
        : dto.TraceDataPlotStates.Select(ToState).ToArr();

            var parameterEditStates = dto.ParameterEditStates.IsNullOrEmpty()
        ? default
        : dto.ParameterEditStates.ToArr();

            parameterEditStates = simulation.SimConfig.SimInput.SimParameters.Map(p =>
            {
                var maybeExistingState = parameterEditStates.Find(pes => pes.Name == p.Name);
                return(maybeExistingState.Match(
                           es => es,
                           () => new ParameterEditState(p.Name, p.Scalar)));
            });

            ParameterEditStates = parameterEditStates;

            TraceState = dto.TraceState ?? new TraceState();

            _autoApplyParameterSharedState    = dto.AutoApplyParameterSharedState;
            _autoShareParameterSharedState    = dto.AutoShareParameterSharedState;
            _autoApplyElementSharedState      = dto.AutoApplyElementSharedState;
            _autoShareElementSharedState      = dto.AutoShareElementSharedState;
            _autoApplyObservationsSharedState = dto.AutoApplyObservationsSharedState;
            _autoShareObservationsSharedState = dto.AutoShareObservationsSharedState;
        }
Example #2
0
        public static void Save(ModuleState instance, Simulation simulation)
        {
            var dto = new _ModuleStateDTO
            {
                TraceDataPlotStates = instance.TraceDataPlotStates
                                      .Map(tdps => new _TraceDataPlotStateDTO
                {
                    IsVisible         = tdps.IsVisible,
                    DepVarConfigState = new _DepVarConfigStateDTO
                    {
                        SelectedElementName               = tdps.DepVarConfigState.SelectedElementName,
                        MRUElementNames                   = tdps.DepVarConfigState.MRUElementNames.ToArray(),
                        SelectedInsetElementName          = tdps.DepVarConfigState.SelectedInsetElementName,
                        SupplementaryElementNames         = tdps.DepVarConfigState.SupplementaryElementNames.ToArray(),
                        InactiveSupplementaryElementNames = tdps.DepVarConfigState.InactiveSupplementaryElementNames
                                                            .ToDictionary(kvp => kvp.Key, kvp => kvp.Value.ToArray()),
                        ObservationsReferences = tdps.DepVarConfigState.ObservationsReferences.ToArray(),
                        IsScaleLogarithmic     = tdps.DepVarConfigState.IsScaleLogarithmic
                    },
                    ViewHeight                   = tdps.ViewHeight,
                    IsSeriesTypeLine             = tdps.IsSeriesTypeLine,
                    IsAxesOriginLockedToZeroZero = tdps.IsAxesOriginLockedToZeroZero,
                    XMinimum = tdps.XMinimum,
                    XMaximum = tdps.XMaximum,
                    YMinimum = tdps.YMinimum,
                    YMaximum = tdps.YMaximum
                })
                                      .ToArray(),
                ParameterEditStates              = instance.ParameterEditStates.ToArray(),
                TraceState                       = instance.TraceState,
                AutoApplyParameterSharedState    = instance.AutoApplyParameterSharedState,
                AutoShareParameterSharedState    = instance.AutoShareParameterSharedState,
                AutoApplyElementSharedState      = instance.AutoApplyElementSharedState,
                AutoShareElementSharedState      = instance.AutoShareElementSharedState,
                AutoApplyObservationsSharedState = instance.AutoApplyObservationsSharedState,
                AutoShareObservationsSharedState = instance.AutoShareObservationsSharedState
            };

            simulation.SavePrivateData(
                dto,
                nameof(Plot),
                nameof(ViewModel),
                nameof(ModuleState)
                );
        }