public QueryModel() { ModelUrl = "/query"; ApplicationModel.Current.Server.Value.RawUrl = null; SelectedTransformer = new Observable<string> { Value = "None" }; SelectedTransformer.PropertyChanged += (sender, args) => Requery(); ApplicationModel.DatabaseCommands.GetTransformersAsync(0, 256).ContinueOnSuccessInTheUIThread(transformers => { Transformers = new List<string>{"None"}; Transformers.AddRange(transformers.Select(definition => definition.Name)); OnPropertyChanged(() => Transformers); }); queryDocument = new EditorDocument { Language = SyntaxEditorHelper.LoadLanguageDefinitionFromResourceStream("RavenQuery.langdef") }; ExceptionLine = -1; ExceptionColumn = -1; CollectionSource = new QueryDocumentsCollectionSource(); Observable.FromEventPattern<QueryStatisticsUpdatedEventArgs>(h => CollectionSource.QueryStatisticsUpdated += h, h => CollectionSource.QueryStatisticsUpdated -= h) .SampleResponsive(TimeSpan.FromSeconds(0.5)) .TakeUntil(Unloaded) .ObserveOnDispatcher() .Subscribe(e => { QueryTime = e.EventArgs.QueryTime; Results = e.EventArgs.Statistics; }); Observable.FromEventPattern<QueryErrorEventArgs>(h => CollectionSource.QueryError += h, h => CollectionSource.QueryError -= h) .ObserveOnDispatcher() .Subscribe(e => HandleQueryError(e.EventArgs.Exception)); DocumentsResult = new DocumentsModel(CollectionSource) { Header = "Results", DocumentNavigatorFactory = (id, index) => DocumentNavigator.Create(id, index, IndexName, CollectionSource.TemplateQuery), }; QueryErrorMessage = new Observable<string>(); IsErrorVisible = new Observable<bool>(); SortBy = new BindableCollection<StringRef>(x => x.Value); SortBy.CollectionChanged += HandleSortByChanged; SortByOptions = new BindableCollection<string>(x => x); Suggestions = new BindableCollection<FieldAndTerm>(x => x.Field); DynamicOptions = new BindableCollection<string>(x => x) {"AllDocs"}; AvailableIndexes = new BindableCollection<string>(x => x); SpatialQuery = new SpatialQueryModel {IndexName = indexName}; }
public QueryModel() { ModelUrl = "/query"; ApplicationModel.Current.Server.Value.RawUrl = null; queryDocument = new EditorDocument() { Language = SyntaxEditorHelper.LoadLanguageDefinitionFromResourceStream("RavenQuery.langdef") }; ExceptionLine = -1; ExceptionColumn = -1; CollectionSource = new QueryDocumentsCollectionSource(); Observable.FromEventPattern<QueryStatisticsUpdatedEventArgs>(h => CollectionSource.QueryStatisticsUpdated += h, h => CollectionSource.QueryStatisticsUpdated -= h) .SampleResponsive(TimeSpan.FromSeconds(0.5)) .TakeUntil(Unloaded) .ObserveOnDispatcher() .Subscribe(e => { QueryTime = e.EventArgs.QueryTime; Results = e.EventArgs.Statistics; }); Observable.FromEventPattern<QueryErrorEventArgs>(h => CollectionSource.QueryError += h, h => CollectionSource.QueryError -= h) .ObserveOnDispatcher() .Subscribe(e => HandleQueryError(e.EventArgs.Exception)); DocumentsResult = new DocumentsModel(CollectionSource) { Header = "Results", DocumentNavigatorFactory = (id, index) => DocumentNavigator.Create(id, index, IndexName, CollectionSource.TemplateQuery), }; QueryErrorMessage = new Observable<string>(); IsErrorVisible = new Observable<bool>(); SortBy = new BindableCollection<StringRef>(x => x.Value); SortBy.CollectionChanged += HandleSortByChanged; SortByOptions = new BindableCollection<string>(x => x); Suggestions = new BindableCollection<FieldAndTerm>(x => x.Field); DynamicOptions = new BindableCollection<string>(x => x) {"AllDocs"}; }
public PatchModel() { Values = new ObservableCollection<PatchValue>(); InProcess = new Observable<bool>(); OriginalDoc = new EditorDocument { Language = JsonLanguage, IsReadOnly = true, }; NewDoc = new EditorDocument { Language = JsonLanguage, IsReadOnly = true, }; Script = new EditorDocument { Language = JScriptLanguage }; Script.Language.RegisterService(new PatchScriptIntelliPromptProvider(Values, recentDocuments)); Script.Language.RegisterService<IEditorDocumentTextChangeEventSink>(new AutoCompletionTrigger()); QueryDoc = new EditorDocument { Language = QueryLanguage }; ShowBeforeAndAfterPrompt = true; ShowAfterPrompt = true; AvailableObjects = new ObservableCollection<string>(); queryCollectionSource = new QueryDocumentsCollectionSource(); QueryResults = new DocumentsModel(queryCollectionSource) { Header = "Matching Documents", MinimalHeader = true, HideItemContextMenu = true}; QueryResults.ItemSelection.SelectionChanged += (sender, args) => { var firstOrDefault = QueryResults.ItemSelection.GetSelectedItems().FirstOrDefault(); if (firstOrDefault != null) { UpdateBeforeDocument(firstOrDefault.Item.Document); HasSelection = true; } else { HasSelection = false; ClearBeforeAndAfter(); } }; QueryResults.RecentDocumentsChanged += delegate { recentDocuments.Clear(); recentDocuments.AddRange(QueryResults.GetMostRecentDocuments().Where(d => d.Document != null).Take(5).Select(d => d.Document)); }; PatchScriptErrorMessage = new Observable<string>(); IsErrorVisible = new Observable<bool>(); }
public PatchModel() { selectedItem = new Observable<string>(); OriginalDoc = new EditorDocument() { Language = JsonLanguage, IsReadOnly = true, }; NewDoc = new EditorDocument() { Language = JsonLanguage, IsReadOnly = true, }; Script = new EditorDocument() { Language = JScriptLanguage }; QueryDoc = new EditorDocument() { Language = QueryLanguage }; ShowBeforeAndAfterPrompt = true; ShowAfterPrompt = true; AvailableObjects = new ObservableCollection<string>(); Values = new ObservableCollection<PatchValue>(); queryCollectionSource = new QueryDocumentsCollectionSource(); QueryResults = new DocumentsModel(queryCollectionSource) { Header = "Matching Documents", MinimalHeader = true, HideItemContextMenu = true}; QueryResults.ItemSelection.SelectionChanged += (sender, args) => { var firstOrDefault = QueryResults.ItemSelection.GetSelectedItems().FirstOrDefault(); if (firstOrDefault != null) { OriginalDoc.SetText(firstOrDefault.Item.Document.ToJson().ToString()); ShowBeforeAndAfterPrompt = false; HasSelection = true; OnPropertyChanged(() => HasSelection); } else { HasSelection = false; OnPropertyChanged(() => HasSelection); ClearBeforeAndAfter(); } }; selectedItem.PropertyChanged += (sender, args) => { if (PatchOn == PatchOnOptions.Document && string.IsNullOrWhiteSpace(SelectedItem) == false) ApplicationModel.Database.Value.AsyncDatabaseCommands.GetAsync(SelectedItem). ContinueOnSuccessInTheUIThread(doc => { if (doc == null) { ClearBeforeAndAfter(); } else { OriginalDoc.SetText(doc.ToJson().ToString()); ShowBeforeAndAfterPrompt = false; } }); }; }