Exemplo n.º 1
0
        /// <summary>
        /// Returns an <see cref="T:System.ComponentModel.BindingList`1" /> implementation that stays in sync with the given
        /// <see cref="T:System.Collections.ObjectModel.ObservableCollection`1" />.
        /// </summary>
        /// <typeparam name="T"> The element type. </typeparam>
        /// <param name="source"> The collection that the binding list will stay in sync with. </param>
        /// <returns> The binding list. </returns>
        public static BindingList <T> ToBindingList <T>(this ObservableCollection <T> source) where T : class
        {
            Check.NotNull <ObservableCollection <T> >(source, nameof(source));
            DbLocalView <T> dbLocalView = source as DbLocalView <T>;

            if (dbLocalView == null)
            {
                return((BindingList <T>) new ObservableBackedBindingList <T>(source));
            }
            return((BindingList <T>)dbLocalView.BindingList);
        }
Exemplo n.º 2
0
        public void State_manager_Add_event_for_entity_of_wrong_type_for_DbLocalView_is_ignored()
        {
            var mockInternalContext = CreateMockedInternalContext(new Mock <IDbSet <FakeEntity> >());

            CollectionChangeEventHandler stateManagerChanged = null;

            mockInternalContext.Setup(i => i.RegisterObjectStateManagerChangedEvent(It.IsAny <CollectionChangeEventHandler>())).
            Callback <CollectionChangeEventHandler>(h => stateManagerChanged = h);

            var localView = new DbLocalView <FakeEntity>(mockInternalContext.Object);

            stateManagerChanged.Invoke(null, new CollectionChangeEventArgs(CollectionChangeAction.Add, "Wrong Type"));

            Assert.Equal(0, localView.Count);
        }
Exemplo n.º 3
0
        public void State_manager_Add_event_causes_entity_to_be_added_to_DbLocalView()
        {
            var mockInternalContext = CreateMockedInternalContext(new Mock <IDbSet <FakeEntity> >());

            CollectionChangeEventHandler stateManagerChanged = null;

            mockInternalContext.Setup(i => i.RegisterObjectStateManagerChangedEvent(It.IsAny <CollectionChangeEventHandler>())).
            Callback <CollectionChangeEventHandler>(h => stateManagerChanged = h);

            var localView = new DbLocalView <FakeEntity>(mockInternalContext.Object);

            var entity = new FakeEntity();

            stateManagerChanged.Invoke(null, new CollectionChangeEventArgs(CollectionChangeAction.Add, entity));

            Assert.True(localView.Contains(entity));
        }
Exemplo n.º 4
0
        public EntityListMock()
        {
#if EF_5_0
            var collection = new ObservableCollection <T>();
#else
            var collection = new DbLocalView <T>();
#endif
            var queryable = collection.AsQueryable();
            SetupGet(p => p.ElementType).Returns(queryable.ElementType);
            SetupGet(p => p.Expression).Returns(queryable.Expression);
            Setup(p => p.GetEnumerator()).Returns(queryable.GetEnumerator());
            SetupGet(p => p.Provider).Returns(queryable.Provider);
            Setup(p => p.Add(It.IsAny <T>()))
            .Callback((T d) => collection.Add(d));
            Setup(p => p.Remove(It.IsAny <T>())).Callback((T d) => collection.Remove(d));
            SetupGet(p => p.Local).Returns(collection);
        }
Exemplo n.º 5
0
 public override void ResetQuery()
 {
     this._entitySet = (EntitySet)null;
     this._localView = (DbLocalView <TEntity>)null;
     base.ResetQuery();
 }
Exemplo n.º 6
0
 /// <summary>
 ///     Resets the set to its uninitialized state so that it will be re-lazy initialized the next
 ///     time it is used.  This allows the ObjectContext backing a DbContext to be switched out.
 /// </summary>
 public override void ResetQuery()
 {
     _entitySet = null;
     _localView = null;
     base.ResetQuery();
 }