Exemplo n.º 1
0
        public void FlyoutStaysOpenIfWanted()
        {
            // Arrange
            var currentProject = new ProjectViewModel( new Project { Id = 123 } );
            var messenger = new Messenger();
            var todoRepoMock = new Mock<ITodoRepository>();

            bool messageReceived = false;
            messenger.Register<FlyoutMessage>( this, msg => { if( msg.FlyoutName == FlyoutMessage.AddEntryFlyoutName ) messageReceived = true; } );

            var vm = new AddEntryViewModel( Enumerable.Empty<TagViewModel>(), currentProject, todoRepoMock.Object, messenger )
            {
                Summary = "summary"
            };

            // Act
            vm.StayOpen = true;
            vm.AddCommand.Execute( null );
            bool stay = messageReceived;

            vm.Summary = "summary";
            vm.StayOpen = false;
            vm.AddCommand.Execute( null );
            bool dontStay = messageReceived;

            // Assert
            Assert.IsFalse( stay );
            Assert.IsTrue( dontStay );
        }
Exemplo n.º 2
0
        public void AddUsesCorrectValues()
        {
            // Arrange
            var tags = new[]
            {
                new TagViewModel( new Tag {Id = 1, Name = "Tag1"} ),
                new TagViewModel( new Tag {Id = 2, Name = "Tag2"} )
            };

            var currentProject = new ProjectViewModel( new Project { Id = 123 } );

            var messenger = new Messenger();
            bool addMessageReceived = false;
            messenger.Register<EntryAddedMessage>( this, msg => addMessageReceived = true );

            var todoRepoMock = new Mock<ITodoRepository>();
            todoRepoMock.Setup( x => x.Add( It.Is<Todo>( t => t.Summary.Equals( "summary" ) && t.Details.Equals( "details" ) && t.Project.Id == 123 ) ) ).Verifiable();
            todoRepoMock.Setup( x => x.Update( It.Is<Todo>( t => t.Tags.First().Id == 2 ) ) ).Verifiable();

            var vm = new AddEntryViewModel( tags, currentProject, todoRepoMock.Object, messenger )
            {
                Summary = "summary",
                Details = "details"
            };

            // Act
            vm.Tags[1].IsSelected = true;
            vm.AddCommand.Execute( null );

            // Assert
            todoRepoMock.VerifyAll();
            Assert.IsTrue( addMessageReceived );
        }
Exemplo n.º 3
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 );
        }
Exemplo n.º 4
0
        public AddEntryViewModel( IEnumerable<TagViewModel> tagList, ProjectViewModel currentProject, ITodoRepository todoRepo = null, IMessenger messenger = null )
            : base(null, null, messenger)
        {
            CurrentProject = currentProject;
            TodoRepo = todoRepo ?? new TodoRepository( App.Session );
            Tags = tagList.Select( t => new TagEntry( t ) ).ToList();

            Validate( nameof( Summary ) ).Check( () => !string.IsNullOrWhiteSpace( Summary ) ).Message( Strings.EntryNeedsSummary );
            Reset();
        }
Exemplo n.º 5
0
        private void ExecuteNewProjectCommand()
        {
            var project = new Project
            {
                Name = NewProjectName
            };

            ProjectRepo.Add(project);
            var projectVm = new ProjectViewModel(project);

            projectVm.CurrentChanged += Proj_CurrentChanged;

            Projects.Add(projectVm);

            if (CurrentProject != null)
            {
                CurrentProject.IsCurrent = false;
            }
            CurrentProject           = projectVm;
            CurrentProject.IsCurrent = true;

            Reset();
        }
 public CurrentProjectChangedMessage( ProjectViewModel project )
 {
     CurrentProject = project;
 }
Exemplo n.º 7
0
		private async void ExecuteDeleteProjectCommand( ProjectViewModel arg )
		{
			ConfirmationServiceArgs args = new ConfirmationServiceArgs( Strings.Confirm, string.Format( Strings.DoYouReallyWantToDeleteProjectXXX, arg.Model.Name ), Strings.Yes, Strings.No );

			if( !await ViewServices.Execute<IConfirmationService, bool>( args ) )
			{
				return;
			}

			arg.CurrentChanged -= Proj_CurrentChanged;

			Projects.Remove( arg );
			ProjectRepo.Delete( arg.Model );

			if( !Projects.Contains( CurrentProject ) )
			{
				CurrentProject = Projects.FirstOrDefault();
				if( CurrentProject != null )
				{
					CurrentProject.IsCurrent = true;
				}
			}

			MessengerInstance.Send( new NotificationMessage( Strings.ProjectDeleted ) );
		}
Exemplo n.º 8
0
		private bool CanExecuteDeleteProjectCommand( ProjectViewModel arg )
		{
			return arg != null;
		}
Exemplo n.º 9
0
		private void ExecuteNewProjectCommand()
		{
			var project = new Project
			{
				Name = NewProjectName
			};

			ProjectRepo.Add( project );
			var projectVm = new ProjectViewModel( project );
			projectVm.CurrentChanged += Proj_CurrentChanged;

			Projects.Add( projectVm );

			if( CurrentProject != null )
			{
				CurrentProject.IsCurrent = false;
			}
			CurrentProject = projectVm;
			CurrentProject.IsCurrent = true;

			Reset();
		}
Exemplo n.º 10
0
 private bool CanExecuteDeleteProjectCommand(ProjectViewModel arg)
 {
     return(arg != null);
 }
Exemplo n.º 11
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;
        }