Пример #1
0
            public void MultipleActionsWithoutSuspendingNotifications()
            {
                var counter = 0;

                var fastCollection = new FastObservableCollection <int>();

                fastCollection.AutomaticallyDispatchChangeNotifications = false;
                fastCollection.CollectionChanged += (sender, e) => counter++;

                fastCollection.Add(0);
                fastCollection.Add(1);

                fastCollection.Remove(0);
                fastCollection.Remove(1);

                fastCollection.AddRange(new[] { 1, 2 });

                fastCollection[0] = 5;

                fastCollection.Move(0, 1);

                fastCollection.Clear();

                Assert.AreEqual(9, counter);
            }
        /// <summary>
        /// Initializes a new instance of the <see cref="EmployeesViewModel"/> class.
        /// </summary>
        public EmployeesViewModel(IMessageMediator messageMediator, IUIVisualizerService uiVisualizerService, IEmployeeRepository employeeRepository,
            IMessageService messageService)
            : base(messageMediator)
        {
            Argument.IsNotNull(() => uiVisualizerService);
            Argument.IsNotNull(() => employeeRepository);
            Argument.IsNotNull(() => messageService);

            _uiVisualizerService = uiVisualizerService;
            _employeeRepository = employeeRepository;
            _messageService = messageService;

            AddEmployee = new Command(OnAddEmployeeExecute);
            EditEmployee = new Command(OnEditEmployeeExecute, OnEditEmployeeCanExecute);
            DeleteEmployee = new Command(OnDeleteEmployeeExecute, OnDeleteEmployeeCanExecute);

            Employees = new FastObservableCollection<IEmployee>();
            if (!ObjectHelper.IsNull(SelectedDepartment))
            {
                Employees.AddRange(EmployeeRepository.GetAllEmployees(SelectedDepartment.Name));
            }

            if (Employees.Count > 0)
            {
                SelectedEmployee = Employees[0];
            }

            Mediator.Register<string>(this, OnSelectedDepartmentUpdated, "UpdateEmployees");
        }
Пример #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="EmployeesViewModel"/> class.
        /// </summary>
        public EmployeesViewModel(IMessageMediator messageMediator, IUIVisualizerService uiVisualizerService, IEmployeeRepository employeeRepository,
                                  IMessageService messageService)
            : base(messageMediator)
        {
            Argument.IsNotNull(() => uiVisualizerService);
            Argument.IsNotNull(() => employeeRepository);
            Argument.IsNotNull(() => messageService);

            _uiVisualizerService = uiVisualizerService;
            _employeeRepository  = employeeRepository;
            _messageService      = messageService;

            AddEmployee    = new Command(OnAddEmployeeExecute);
            EditEmployee   = new Command(OnEditEmployeeExecute, OnEditEmployeeCanExecute);
            DeleteEmployee = new Command(OnDeleteEmployeeExecute, OnDeleteEmployeeCanExecute);

            Employees = new FastObservableCollection <IEmployee>();
            if (!ObjectHelper.IsNull(SelectedDepartment))
            {
                Employees.AddRange(EmployeeRepository.GetAllEmployees(SelectedDepartment.Name));
            }

            if (Employees.Count > 0)
            {
                SelectedEmployee = Employees[0];
            }

            Mediator.Register <string>(this, OnSelectedDepartmentUpdated, "UpdateEmployees");
        }
Пример #4
0
        public void TestAddRangeShouldRaiseCollectionChangedEventOnce()
        {
            var timesRaised = 0;

            _collection.CollectionChanged += (s, e) => timesRaised++;
            _collection.AddRange(_items);
            Assert.That(timesRaised, Is.EqualTo(1));
        }