示例#1
0
        public QueryRunnerViewModel(Guid fileId, IHighlightingDefinition highlightingDefinition, Func <ExplicitConnection> connectionProvider, Func <GeneralSettings> generalSettingsProvider, Action <Result> editHandler, ISnackbarMessageQueue snackbarMessageQueue, IDialogTargetFinder dialogTargetFinder)
        {
            if (highlightingDefinition == null)
            {
                throw new ArgumentNullException(nameof(highlightingDefinition));
            }
            if (connectionProvider == null)
            {
                throw new ArgumentNullException(nameof(connectionProvider));
            }
            if (generalSettingsProvider == null)
            {
                throw new ArgumentNullException(nameof(generalSettingsProvider));
            }
            if (editHandler == null)
            {
                throw new ArgumentNullException(nameof(editHandler));
            }
            if (snackbarMessageQueue == null)
            {
                throw new ArgumentNullException(nameof(snackbarMessageQueue));
            }
            if (dialogTargetFinder == null)
            {
                throw new ArgumentNullException(nameof(dialogTargetFinder));
            }

            HighlightingDefinition   = highlightingDefinition;
            _connectionProvider      = connectionProvider;
            _generalSettingsProvider = generalSettingsProvider;
            _editHandler             = editHandler;
            _dialogTargetFinder      = dialogTargetFinder;
            RunQueryCommand          = new Command(_ => RunQuery());
            _fetchMoreCommand        = new Command(_ => FetchMore(), _ => _activeDocumentQuery != null && _activeDocumentQuery.Item2.HasMoreResults);

            var editDocumentCommand   = new Command(o => _editHandler((Result)o), o => o is Result);
            var deleteDocumentCommand = new Command(o => DeleteDocument((Result)o, snackbarMessageQueue), o => o is Result);

            Document = new TextDocument();

            DocumentChangedObservable = Observable.Create <DocumentChangedUnit>(observer =>
            {
                return
                (Document.OnPropertyChanged(td => td.Text)
                 .Subscribe(text => observer.OnNext(new DocumentChangedUnit(fileId, Document.Text))));
            });

            ResultSetExplorer = new ResultSetExplorerViewModel(_fetchMoreCommand, editDocumentCommand, deleteDocumentCommand);
        }
示例#2
0
        public DocumentEditorViewModel(Func <ExplicitConnection> connectionProvider, ISnackbarMessageQueue snackbarMessageQueue, IDialogTargetFinder dialogTargetFinder)
        {
            if (connectionProvider == null)
            {
                throw new ArgumentNullException(nameof(connectionProvider));
            }
            if (snackbarMessageQueue == null)
            {
                throw new ArgumentNullException(nameof(snackbarMessageQueue));
            }

            _connectionProvider = connectionProvider;
            _dialogTargetFinder = dialogTargetFinder;
            SaveCommand         = new Command(_ => Save(snackbarMessageQueue));
            NewCommand          = new Command(_ => Document.Text = SampleContent);

            Document = new TextDocument();
        }
示例#3
0
        public ManagementActionsController(IDialogTargetFinder dialogTargetFinder, ISnackbarMessageQueue snackbarMessageQueue, DispatcherTaskSchedulerProvider dispatcherTaskSchedulerProvider)
        {
            if (dialogTargetFinder == null)
            {
                throw new ArgumentNullException(nameof(dialogTargetFinder));
            }
            if (snackbarMessageQueue == null)
            {
                throw new ArgumentNullException(nameof(snackbarMessageQueue));
            }
            if (dispatcherTaskSchedulerProvider == null)
            {
                throw new ArgumentNullException(nameof(dispatcherTaskSchedulerProvider));
            }

            _dialogTargetFinder              = dialogTargetFinder;
            _snackbarMessageQueue            = snackbarMessageQueue;
            _dispatcherTaskSchedulerProvider = dispatcherTaskSchedulerProvider;
        }
示例#4
0
        public QueryDeveloperViewModel(Guid fileId, ExplicitConnection explicitConnection, IExplicitConnectionCache explicitConnectionCache, IHighlightingDefinition sqlHighlightingDefinition, ISnackbarMessageQueue snackbarMessageQueue, IDialogTargetFinder dialogTargetFinder)
        {
            if (explicitConnectionCache == null)
            {
                throw new ArgumentNullException(nameof(explicitConnectionCache));
            }

            FileId                   = fileId;
            _generalSettings         = new GeneralSettings(10);
            _explicitConnection      = explicitConnection;
            _explicitConnectionCache = explicitConnectionCache;

            FetchDocumentCommand    = new Command(o => QueryRunnerViewModel.Run($"SELECT * FROM root r WHERE r.id = '{DocumentId}'"));
            EditConnectionCommand   = new Command(sender => EditConnectionAsync((DependencyObject)sender));
            EditSettingsCommand     = new Command(sender => EditSettingsAsync((DependencyObject)sender));
            QueryRunnerViewModel    = new QueryRunnerViewModel(fileId, sqlHighlightingDefinition, () => _explicitConnection, () => _generalSettings, EditDocumentHandler, snackbarMessageQueue, dialogTargetFinder);
            DocumentEditorViewModel = new DocumentEditorViewModel(() => _explicitConnection, snackbarMessageQueue, dialogTargetFinder);

            SetName();
        }
示例#5
0
 public QueryDeveloperViewModel(Guid fileId, IExplicitConnectionCache explicitConnectionCache, IHighlightingDefinition sqlHighlightingDefinition, ISnackbarMessageQueue snackbarMessageQueue, IDialogTargetFinder dialogTargetFinder)
     : this(fileId, null, explicitConnectionCache, sqlHighlightingDefinition, snackbarMessageQueue, dialogTargetFinder)
 {
 }