コード例 #1
0
        protected ViewModelBase(IHistoryManager history,
                                DatabaseTableSolutionItem solutionItem,
                                ISolutionItemNameRegistry solutionItemName,
                                ISolutionManager solutionManager,
                                ISolutionTasksService solutionTasksService,
                                IEventAggregator eventAggregator,
                                IQueryGenerator queryGenerator,
                                IDatabaseTableDataProvider databaseTableDataProvider,
                                IMessageBoxService messageBoxService,
                                ITaskRunner taskRunner,
                                IParameterFactory parameterFactory,
                                ITableDefinitionProvider tableDefinitionProvider,
                                IItemFromListProvider itemFromListProvider,
                                ISolutionItemIconRegistry iconRegistry,
                                ISessionService sessionService,
                                IDatabaseTableCommandService commandService,
                                IParameterPickerService parameterPickerService,
                                IStatusBar statusBar,
                                IMySqlExecutor mySqlExecutor)
        {
            this.solutionItemName          = solutionItemName;
            this.solutionManager           = solutionManager;
            this.solutionTasksService      = solutionTasksService;
            this.queryGenerator            = queryGenerator;
            this.databaseTableDataProvider = databaseTableDataProvider;
            this.messageBoxService         = messageBoxService;
            this.taskRunner              = taskRunner;
            this.parameterFactory        = parameterFactory;
            this.tableDefinitionProvider = tableDefinitionProvider;
            this.itemFromListProvider    = itemFromListProvider;
            this.sessionService          = sessionService;
            this.commandService          = commandService;
            this.parameterPickerService  = parameterPickerService;
            this.statusBar     = statusBar;
            this.mySqlExecutor = mySqlExecutor;
            this.solutionItem  = solutionItem;
            History            = history;

            undoCommand            = new DelegateCommand(History.Undo, CanUndo);
            redoCommand            = new DelegateCommand(History.Redo, CanRedo);
            Save                   = new AsyncAutoCommand(SaveSolutionItem);
            title                  = solutionItemName.GetName(solutionItem);
            Icon                   = iconRegistry.GetIcon(solutionItem);
            nameGeneratorParameter = parameterFactory.Factory("Parameter");

            History.PropertyChanged += (_, _) =>
            {
                undoCommand.RaiseCanExecuteChanged();
                redoCommand.RaiseCanExecuteChanged();
                RaisePropertyChanged(nameof(IsModified));
            };

            tableDefinition = tableDefinitionProvider.GetDefinition(solutionItem.DefinitionId) !;
            LoadAndCreateCommands();
            nameGeneratorParameter = parameterFactory.Factory(tableDefinition.Picker);
        }
コード例 #2
0
    public ContextualParametersProvider(IContextualParametersJsonProvider jsons,
                                        IParameterPickerService pickerService,
                                        IParameterFactory parameterFactory)
    {
        foreach (var json in jsons.GetParameters())
        {
            var deserialized = JsonConvert.DeserializeObject <ContextualParameterJson>(json.content);

            if (deserialized.SimpleSwitch != null)
            {
                var required = deserialized.SimpleSwitch.Values.Values.ToList();
                Debug.Assert(required.Count > 0);

                var observable = parameterFactory.OnRegisterLong(required[0]).Select(_ => 1);

                for (var i = 1; i < required.Count; i++)
                {
                    observable = observable.CombineLatest(parameterFactory.OnRegisterLong(required[i]), (a, _) => a + 1);
                }

                ObservableExtensions.SubscribeOnce(observable, val =>
                {
                    Debug.Assert(val == required.Count);
                    parameterFactory.Register(deserialized.Name, new DatabaseContextualParameter(parameterFactory, pickerService, deserialized.SimpleSwitch));
                });
            }
            else if (deserialized.SimpleStringSwitch != null)
            {
                var required = deserialized.SimpleStringSwitch.Values.Values.ToList();
                Debug.Assert(required.Count > 0);

                var observable = parameterFactory.OnRegister(required[0]).Select(_ => 1);

                for (var i = 1; i < required.Count; i++)
                {
                    observable = observable.CombineLatest(parameterFactory.OnRegister(required[i]), (a, _) => a + 1);
                }

                ObservableExtensions.SubscribeOnce(observable, val =>
                {
                    Debug.Assert(val == required.Count);
                    parameterFactory.Register(deserialized.Name, new DatabaseStringContextualParameter(parameterFactory, pickerService, deserialized.SimpleStringSwitch));
                });
            }
            else
            {
                throw new Exception("Unknown type of parameter");
            }
        }
    }
コード例 #3
0
 public SpellScriptProvider(IParameterFactory parameterFactory, IParameterPickerService pickerService) : base(parameterFactory, pickerService)
 {
 }
コード例 #4
0
 public EventScriptBaseProvider(IParameterFactory parameterFactory,
                                IParameterPickerService pickerService)
 {
     this.parameterFactory = parameterFactory;
     this.pickerService    = pickerService;
 }
コード例 #5
0
 public ParametersEditViewModel(IItemFromListProvider itemFromListProvider,
                                ICurrentCoreVersion currentCoreVersion,
                                IParameterPickerService parameterPickerService,
                                SmartBaseElement element,
                                bool focusFirst,
                                IEnumerable <(ParameterValueHolder <long> parameter, string name)>?parameters,
コード例 #6
0
 public EquipmentCreatureGuidParameter(ITableEditorPickerService pickerService,
                                       IParameterPickerService parameterPickerService)
 {
     this.pickerService          = pickerService;
     this.parameterPickerService = parameterPickerService;
 }