示例#1
0
        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();
            };
        }
示例#2
0
		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;
		}
示例#3
0
        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);
        }
示例#4
0
        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)
                }
            };
        }
示例#5
0
        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;
		}
示例#6
0
        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;
        }