public CollectionsModel() { ModelUrl = "/collections"; Collections = new BindableCollection <CollectionModel>(model => model.Name); SelectedCollection = new Observable <CollectionModel>(); DocumentsForSelectedCollection.SetChangesObservable(d => d.IndexChanges .Where(n => n.Name.Equals(CollectionsIndex, StringComparison.InvariantCulture)) .Select(m => Unit.Default)); DocumentsForSelectedCollection.DocumentNavigatorFactory = (id, index) => DocumentNavigator.Create(id, index, CollectionsIndex, new IndexQuery() { Query = "Tag:" + GetSelectedCollectionName() }); SelectedCollection.PropertyChanged += (sender, args) => { PutCollectionNameInTheUrl(); CollectionSource.CollectionName = GetSelectedCollectionName(); DocumentsForSelectedCollection.Context = "Collection/" + GetSelectedCollectionName(); }; }
private static DocumentsModel CreateDocumentsModel() { var documentsModel = new DocumentsModel(new DocumentsCollectionSource()) { DocumentNavigatorFactory = (id, index) => DocumentNavigator.Create(id, index), Context = "AllDocuments", }; documentsModel.SetChangesObservable(d => d.DocumentChanges.Select(s => Unit.Default)); return documentsModel; }
private static DocumentsModel CreateDocumentsModel() { var documentsModel = new DocumentsModel(new DocumentsCollectionSource()) { DocumentNavigatorFactory = (id, index) => DocumentNavigator.Create(id, index), Context = "AllDocuments", }; documentsModel.SetChangesObservable(d => d.DocumentChanges.Select(s => Unit.Default)); return(documentsModel); }
public CollectionsModel() { ModelUrl = "/collections"; ApplicationModel.Current.Server.Value.RawUrl = null; Collections = new BindableCollection <CollectionModel>(model => model.Name); SelectedCollection = new Observable <CollectionModel>(); DocumentsForSelectedCollection.SetChangesObservable(d => d.IndexChanges .Where(n => n.Name.Equals(CollectionsIndex, StringComparison.InvariantCulture)) .Select(m => Unit.Default)); DocumentsForSelectedCollection.DocumentNavigatorFactory = (id, index) => DocumentNavigator.Create(id, index, CollectionsIndex, new IndexQuery() { Query = "Tag:" + GetSelectedCollectionName() }); SelectedCollection.PropertyChanged += (sender, args) => { PutCollectionNameInTheUrl(); CollectionSource.CollectionName = GetSelectedCollectionName(); DocumentsForSelectedCollection.Context = "Collection/" + GetSelectedCollectionName(); }; SortedCollectionsList = new CollectionViewSource() { Source = Collections, SortDescriptions = { new SortDescription("Count", ListSortDirection.Descending) } }; }
public DocumentsPageModel() { ModelUrl = "/documents"; ApplicationModel.Current.Server.Value.RawUrl = null; SelectedCollectionSortingMode = new Observable<string> { Value = Settings.Instance.CollectionSortingMode }; collectionSource = new CollectionDocumentsCollectionSource(); collectionDocumentsModel = new DocumentsModel(collectionSource) { DocumentNavigatorFactory = (id, index) => DocumentNavigator.Create(id, index, CollectionsIndex, new IndexQuery { Query = "Tag:" + GetSelectedCollectionName() }) }; collectionDocumentsModel.SetChangesObservable(d => d.IndexChanges .Where(n => n.Name.Equals(CollectionsIndex, StringComparison.InvariantCulture)) .Select(m => Unit.Default)); allDocumentsDocumentsModel = new DocumentsModel(new DocumentsCollectionSource()) { DocumentNavigatorFactory = (id, index) => DocumentNavigator.Create(id, index), Context = "AllDocuments", }; allDocumentsDocumentsModel.SetChangesObservable(d => d.DocumentChanges.Select(s => Unit.Default)); ravenDocumentsDocumentsModel = new DocumentsModel(new CollectionDocumentsCollectionSource()); ravenDocumentsDocumentsModel.SetChangesObservable(d => d.DocumentChanges.Select(s => Unit.Default)); Collections = new BindableCollection<CollectionModel>(model => model.Name) { new AllDocumentsCollectionModel(), new RavenDocumentsCollectionModel() }; SelectedCollection = new Observable<CollectionModel>(); SelectedCollection.PropertyChanged += (sender, args) => { PutCollectionNameInTheUrl(); var selectedCollectionName = GetSelectedCollectionName(); if (selectedCollectionName == "") { DocumentsModel = allDocumentsDocumentsModel; } else if (selectedCollectionName == "Raven Documents") { DocumentsModel = ravenDocumentsDocumentsModel; } else { collectionSource.CollectionName = selectedCollectionName; collectionDocumentsModel.Context = "Collection/" + GetSelectedCollectionName(); DocumentsModel = collectionDocumentsModel; } }; SortedCollectionsList = new CollectionViewSource { Source = Collections, SortDescriptions = { GetSortDescription() } }; SelectedCollectionSortingMode.PropertyChanged += (sender, args) => { using (SortedCollectionsList.DeferRefresh()) { SortedCollectionsList.SortDescriptions.Clear(); SortedCollectionsList.SortDescriptions.Add(GetSortDescription()); } Settings.Instance.CollectionSortingMode = SelectedCollectionSortingMode.Value; }; CollectionsListWidth = DefaultCollectionsListWidth; }
public DocumentsPageModel() { ModelUrl = "/documents"; ApplicationModel.Current.Server.Value.RawUrl = null; SelectedCollectionSortingMode = new Observable <string> { Value = Settings.Instance.CollectionSortingMode }; collectionSource = new CollectionDocumentsCollectionSource(); collectionDocumentsModel = new DocumentsModel(collectionSource) { DocumentNavigatorFactory = (id, index) => DocumentNavigator.Create(id, index, CollectionsIndex, new IndexQuery { Query = "Tag:" + GetSelectedCollectionName() }) }; collectionDocumentsModel.SetChangesObservable(d => d.IndexChanges .Where(n => n.Name.Equals(CollectionsIndex, StringComparison.InvariantCulture)) .Select(m => Unit.Default)); allDocumentsDocumentsModel = new DocumentsModel(new DocumentsCollectionSource()) { DocumentNavigatorFactory = (id, index) => DocumentNavigator.Create(id, index), Context = "AllDocuments", }; allDocumentsDocumentsModel.SetChangesObservable(d => d.DocumentChanges.Select(s => Unit.Default)); ravenDocumentsDocumentsModel = new DocumentsModel(new CollectionDocumentsCollectionSource()); ravenDocumentsDocumentsModel.SetChangesObservable(d => d.DocumentChanges.Select(s => Unit.Default)); Collections = new BindableCollection <CollectionModel>(model => model.Name) { new AllDocumentsCollectionModel(), new RavenDocumentsCollectionModel() }; SelectedCollection = new Observable <CollectionModel>(); SelectedCollection.PropertyChanged += (sender, args) => { PutCollectionNameInTheUrl(); var selectedCollectionName = GetSelectedCollectionName(); if (selectedCollectionName == "") { DocumentsModel = allDocumentsDocumentsModel; } else if (selectedCollectionName == "Raven Documents") { DocumentsModel = ravenDocumentsDocumentsModel; } else { collectionSource.CollectionName = selectedCollectionName; collectionDocumentsModel.Context = "Collection/" + GetSelectedCollectionName(); DocumentsModel = collectionDocumentsModel; } }; SortedCollectionsList = new CollectionViewSource { Source = Collections, SortDescriptions = { GetSortDescription() } }; SelectedCollectionSortingMode.PropertyChanged += (sender, args) => { using (SortedCollectionsList.DeferRefresh()) { SortedCollectionsList.SortDescriptions.Clear(); SortedCollectionsList.SortDescriptions.Add(GetSortDescription()); } Settings.Instance.CollectionSortingMode = SelectedCollectionSortingMode.Value; }; CollectionsListWidth = DefaultCollectionsListWidth; }