예제 #1
0
        public void BeforeEach()
        {
            var notificationMock = new Mock<INotificationViewModel>();
            notificationMock.SetupGet(n => n.Id).Returns(_notificationId);
            notificationMock.SetupGet(n => n.SubjectId).Returns(_subjectId);
            notificationMock.SetupGet(n => n.SubjectName).Returns(SubjectName);
            notificationMock.SetupGet(n => n.Message).Returns(Message);

            _itemsSourceMock = new Mock<ICollection<INotificationViewModel>>();
            _itemsSourceMock.Setup(i => i.Add(It.IsAny<INotificationViewModel>())).Callback<INotificationViewModel>(m =>
            {
                _notificationAdded = m;
            });

            _notificationListViewModelMock = new Mock<INotificationListViewModel>();
            _notificationListViewModelMock.SetupGet(l => l.ItemsSource).Returns(_itemsSourceMock.Object).Verifiable();

            _notificationFactoryMock = new Mock<INotificationFactory>();
            _notificationFactoryMock.Setup(f => f.Create(It.IsAny<Guid>(), It.IsAny<Guid>(), It.IsAny<string>(), It.IsAny<string>())).Returns(notificationMock.Object).Verifiable();

            var notificationServiceDependenciesMock = new Mock<INotificationServiceDependencies>();
            notificationServiceDependenciesMock.SetupGet(d => d.NotificationListViewModel)
                .Returns(_notificationListViewModelMock.Object);

            notificationServiceDependenciesMock.SetupGet(d => d.NotificationFactory).Returns(_notificationFactoryMock.Object);

            _notificationService = new NotificationService(notificationServiceDependenciesMock.Object);
        }
예제 #2
0
        private void Add(INotificationViewModel notificationViewModel)
        {
            if (_notifications.Count == BusinessLogic.ActionCenter.ActionCenter.MaximumNotificationCount)
            {
                _notifications.RemoveAt(_notifications.Count - 1);
            }

            notificationViewModel.OnRemove += Remove;
            _notifications.Insert(0, notificationViewModel);
            notificationViewModel.Update();
        }
 private void Remove(INotificationViewModel notificationViewModel)
 {
     _notifications.Remove(notificationViewModel);
     UpdateUnreadCount();
 }
        private void Add(INotificationViewModel notificationViewModel)
        {
            if (_notifications.Count == BusinessLogic.ActionCenter.ActionCenter.MaximumNotificationCount)
                _notifications.RemoveAt(_notifications.Count - 1);

            notificationViewModel.OnRemove += Remove;
            _notifications.Insert(0, notificationViewModel);
        }
예제 #5
0
        /// <summary>
        /// Determines whether the specified view model is registered.
        /// </summary>
        /// <param name="viewModel">The view model.</param>
        /// <returns><c>true</c> if the specified view model is registered; otherwise, <c>false</c>.</returns>
        public bool IsRegistered(INotificationViewModel viewModel)
        {
            UserControl view;

            return _registeredViews.TryGetValue(viewModel, out view);
        }
예제 #6
0
        public void BeforeEach()
        {
            var notificationMock = new Mock<INotificationViewModel>();
            notificationMock.SetupGet(n => n.Id).Returns(_notificationId);
            notificationMock.SetupGet(n => n.SubjectId).Returns(_subjectId);

            _itemsSourceMock = new Mock<ICollection<INotificationViewModel>>();
            _itemsSourceMock.Setup(i => i.Remove(It.IsAny<INotificationViewModel>())).Callback<INotificationViewModel>(m =>
            {
                _notificationRemoved = m;
            });
            _itemsSourceMock.Setup(i => i.GetEnumerator())
                .Returns(new Collection<INotificationViewModel> {notificationMock.Object}.GetEnumerator);

                _notificationListViewModelMock = new Mock<INotificationListViewModel>();
            _notificationListViewModelMock.SetupGet(l => l.ItemsSource).Returns(_itemsSourceMock.Object).Verifiable();

            var notificationServiceDependenciesMock = new Mock<INotificationServiceDependencies>();
            notificationServiceDependenciesMock.SetupGet(d => d.NotificationListViewModel)
                .Returns(_notificationListViewModelMock.Object);

            _notificationService = new NotificationService(notificationServiceDependenciesMock.Object);
        }
예제 #7
0
        /// <summary>
        /// Sets the details view model.
        /// </summary>
        /// <param name="detailsViewModel">The details view model.</param>
        /// <returns>PopupBuilder.</returns>
        public PopupBuilder SetDetailsViewModel(INotificationViewModel detailsViewModel)
        {
            _detailMessage = string.Empty;

            _message = string.Empty;
            _detailsViewModel = detailsViewModel;
            if (_detailsViewModel != null)
            {
                _detailsViewModel.Closed += DetailsViewModelClosed;
                _detailsViewModel.PropertyChanged += DetailsViewModel_PropertyChanged;
            }

            return this;
        }
예제 #8
0
        /// <summary>
        /// Sets the custom view model.
        /// </summary>
        /// <param name="customViewModel">The custom view model.</param>
        /// <returns>PopupBuilder.</returns>
        public virtual PopupBuilder SetCustomViewModel(INotificationViewModel customViewModel)
        {
            _message = string.Empty;

            if (_customViewModel != null)
            {
                _customViewModel.Closed -= CustomViewModelClosed;
                _customViewModel.PropertyChanged -= CustomViewModel_PropertyChanged;
            }

            _customViewModel = customViewModel;
            if (_customViewModel != null)
            {
                _customViewModel.Closed += CustomViewModelClosed;
                _customViewModel.PropertyChanged += CustomViewModel_PropertyChanged;
            }

            return this;
        }
예제 #9
0
 private void Remove(INotificationViewModel notificationViewModel)
 {
     _notifications.Remove(notificationViewModel);
     UpdateUnreadCount();
 }