Exemple #1
0
        public EntrySearcher( IProjectListViewModel projectList, IMessenger messenger = null )
            : base(null, null, messenger)
        {
            ProjectList = projectList;
            _CurrentProject = ProjectList.CurrentProject;
            Matches = new ObservableCollection<TodoViewModel>( AllEntries );

            MessengerInstance.Register<CurrentProjectChangedMessage>( this, OnCurrentProjectChanged );
            MessengerInstance.Register<EntryAddedMessage>( this, OnEntryAdded );
        }
Exemple #2
0
        public EntrySearcher(IProjectListViewModel projectList, IMessenger messenger = null)
            : base(null, null, messenger)
        {
            ProjectList     = projectList;
            _CurrentProject = ProjectList.CurrentProject;
            Matches         = new ObservableCollection <TodoViewModel>(AllEntries);

            MessengerInstance.Register <CurrentProjectChangedMessage>(this, OnCurrentProjectChanged);
            MessengerInstance.Register <EntryAddedMessage>(this, OnEntryAdded);
        }
Exemple #3
0
		public TagListViewModel( IProjectListViewModel projectList )
		{
			TagRepo = new TagRepository( Session );

			ProjectList = projectList;
			ProjectList.CurrentProjectChanged += ProjectList_CurrentProjectChanged;

			var tags = Enumerable.Empty<TagViewModel>();
			if( ProjectList.CurrentProject != null )
			{
				tags = ProjectList.CurrentProject.Model.Tags.Select( t => new TagViewModel( t ) );
			}

			Tags = new ObservableCollection<TagViewModel>( tags );

			AvailableColors = new List<Color>( GetAllColors().OrderBy( CalculateHue ) );
			TagNames = new List<string>();

			Validate( nameof( NewTagName ) ).Check( () => !string.IsNullOrWhiteSpace( NewTagName ) ).Message( Strings.TagMustHaveName );
			Validate( nameof( NewTagName ) ).Check( () => !TagNames.Contains( NewTagName ) ).Message( Strings.ThisNameIsAlreadyUsed );
			Reset();
		}
Exemple #4
0
        public TagListViewModel(IProjectListViewModel projectList)
        {
            TagRepo = new TagRepository(Session);

            ProjectList = projectList;
            ProjectList.CurrentProjectChanged += ProjectList_CurrentProjectChanged;

            var tags = Enumerable.Empty <TagViewModel>();

            if (ProjectList.CurrentProject != null)
            {
                tags = ProjectList.CurrentProject.Model.Tags.Select(t => new TagViewModel(t));
            }

            Tags = new ObservableCollection <TagViewModel>(tags);

            AvailableColors = new List <Color>(GetAllColors().OrderBy(CalculateHue));
            TagNames        = new List <string>();

            Validate(nameof(NewTagName)).Check(() => !string.IsNullOrWhiteSpace(NewTagName)).Message(Strings.TagMustHaveName);
            Validate(nameof(NewTagName)).Check(() => !TagNames.Contains(NewTagName)).Message(Strings.ThisNameIsAlreadyUsed);
            Reset();
        }
Exemple #5
0
        public MainViewModel(IDatabaseConnector connector, IViewServiceRepository viewServices = null, ITaskRunner taskRunner = null,
                             IProcessStarter procStarter      = null, IMessenger messenger = null, IProjectListViewModel projectList = null,
                             ISettingsRepository settingsRepo = null)
            : base(viewServices, settingsRepo, messenger)
        {
            var dbConnector = connector ?? Application.Current as IDatabaseConnector;

            Debug.Assert(dbConnector != null);

            var runner = taskRunner ?? new TaskRunner();

            ProcStarter = procStarter ?? new ProcessStarter();

            IsLoading = true;
            runner.Run(() =>
            {
                dbConnector.ConnectToDatabase();

                ProjectList = projectList ?? new ProjectListViewModel(ViewServices, Settings);
                TagList     = new TagListViewModel(ProjectList);
                Searcher    = new EntrySearcher(ProjectList);
            }).ContinueWith(t =>
            {
                ExpandEntries = Settings.GetById(SettingKeys.ExpandEntries).Get <bool>();

                // ReSharper disable ExplicitCallerInfoArgument
                RaisePropertyChanged(nameof(ProjectList));
                RaisePropertyChanged(nameof(TagList));
                RaisePropertyChanged(nameof(Searcher));
                // ReSharper restore ExplicitCallerInfoArgument

                IsLoading = false;

                CommandManager.InvalidateRequerySuggested();
            });
        }
Exemple #6
0
        public void _BeforeTest()
        {
            Tags = new[]
            {
                new Tag {Name = "Tag1"},
                new Tag {Name = "Tag2"},
                new Tag {Name = "Tag3"}
            };

            Todos = new[]
            {
                new Todo {Summary = "Test"},
                new Todo {Summary = "abc", Details = "details"},
                new Todo {Summary = "123", Done = true}
            };

            Todos[0].Tags.Add( Tags[1] );
            Todos[1].Tags.Add( Tags[1] );
            Todos[1].Tags.Add( Tags[2] );

            Project = new Project();
            foreach( var t in Tags )
            {
                Project.Tags.Add( t );
            }

            foreach( var t in Todos )
            {
                Project.Todos.Add( t );
            }

            ProjectVm = new ProjectViewModel( Project );

            var mock = new Mock<IProjectListViewModel>();
            mock.SetupGet( x => x.CurrentProject ).Returns( ProjectVm );
            ProjectListVm = mock.Object;
        }