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 ); }
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); }
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(); }
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(); }
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(); }); }
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; }