Ejemplo n.º 1
0
        public void Initialize(Person person, Boolean registerAsTransient)
        {
            if (registerAsTransient)
            {
                this.RegisterTransient();
            }

            this.SetInitialPropertyValue(() => this.FirstName, person.FirstName);
            this.SetInitialPropertyValue(() => this.LastName, person.LastName);

            this.addressesDataSource = new MementoEntityCollection <AddressViewModel>();
            this.addressesDataSource.BulkLoad(person.Addresses, a =>
            {
                var vm = this.CreateAddressViewModel(a, registerAsTransient);
                return(vm);
            });

            this.Addresses            = this.addressesDataSource.DefaultView;
            this.Addresses.AddingNew += (s, e) =>
            {
                var vm = this.CreateAddressViewModel(null, true);

                e.NewItem    = vm;
                e.AutoCommit = true;
            };
        }
		public void entityCollectionView_listChanged_event_in_multi_threaded_env_should_be_fired_in_the_creation_thread()
		{
			AsyncOperationManager.SynchronizationContext = new DispatcherSynchronizationContext();

			var expected = Thread.CurrentThread.ManagedThreadId;
			var actual = 0;
			var wh = new EventWaitHandle( false, EventResetMode.ManualReset );

			var list = new MementoEntityCollection<GenericParameterHelper>();
			var view = list.DefaultView;
			view.ListChanged += ( s, e ) =>
			{
				actual = Thread.CurrentThread.ManagedThreadId;
				//wh.Set();
			};

			new Thread( new ThreadStart( () =>
			{
				list.Add( new GenericParameterHelper() );
			} ) ).Start();

			actual.Should().Be.EqualTo( expected );
		}
Ejemplo n.º 3
0
        public void entityCollectionView_listChanged_event_in_multi_threaded_env_should_be_fired_in_the_creation_thread()
        {
            AsyncOperationManager.SynchronizationContext = new DispatcherSynchronizationContext();

            var expected = Thread.CurrentThread.ManagedThreadId;
            var actual   = 0;
            var wh       = new EventWaitHandle(false, EventResetMode.ManualReset);

            var list = new MementoEntityCollection <GenericParameterHelper>();
            var view = list.DefaultView;

            view.ListChanged += (s, e) =>
            {
                actual = Thread.CurrentThread.ManagedThreadId;
                //wh.Set();
            };

            new Thread(new ThreadStart(() =>
            {
                list.Add(new GenericParameterHelper());
            })).Start();

            actual.Should().Be.EqualTo(expected);
        }