public void TrackValue_InitDispatcher_InitiateDispatcher()
        {
            var dispatcher = new TrackDispatcher(new OffsetTokenDispatcher());
            var value      = new TrackValue <int>(dispatcher);

            Assert.AreEqual(value.TrackDispatcher, dispatcher);
        }
Beispiel #2
0
        public void TrackDispatcher_InitOffsetTokenDispatcher_InitiateOffsetTokenDispatcher()
        {
            var offsetTokenDispatcher = new OffsetTokenDispatcher();
            var dispatcher            = new TrackDispatcher(offsetTokenDispatcher);

            Assert.AreEqual(dispatcher.OffsetTokenDispatcher, offsetTokenDispatcher);
        }
Beispiel #3
0
        public void TrackDictionaryTest_InitDispatcher_InitiateDispatcher()
        {
            var dispatcher = new TrackDispatcher(new OffsetTokenDispatcher());
            var dictionary = new TrackDictionary <int, int>(dispatcher);

            Assert.AreEqual(dictionary.TrackDispatcher, dispatcher);
        }
        public void TrackValue_InitValueAndDispatcher_InitiateDispatcher(int value)
        {
            var dispatcher = new TrackDispatcher(new OffsetTokenDispatcher());
            var trackTalue = new TrackValue <int>(value, dispatcher);

            Assert.AreEqual(trackTalue.TrackDispatcher, dispatcher);
        }
Beispiel #5
0
        public void Disable_Disable_TokenNotNull()
        {
            var dispatcher = new TrackDispatcher(new OffsetTokenDispatcher());

            using (var disableToken = dispatcher.Disable())
            {
                Assert.IsNotNull(disableToken);
            }
        }
Beispiel #6
0
        public void Disable_Disable_IsEnableFalse()
        {
            var dispatcher = new TrackDispatcher(new OffsetTokenDispatcher());

            using (dispatcher.Disable())
            {
                Assert.IsFalse(dispatcher.IsEnable);
            }
        }
 public void Add(T item)
 {
     if (TrackDispatcher.IsEnable)
     {
         TrackDispatcher.AddAndExecute(new CollectionUniqueExecutor <T>(this, new CollectionUniqueCommand <T>(CollectionUniqueChanged.Add, item)));
     }
     else
     {
         AddForce(item);
     }
 }
 public bool Remove(T item)
 {
     if (TrackDispatcher.IsEnable)
     {
         TrackDispatcher.AddAndExecute(new CollectionUniqueExecutor <T>(this, new CollectionUniqueCommand <T>(CollectionUniqueChanged.Remove, item)));
         return(true);
     }
     else
     {
         return(RemoveForce(item));
     }
 }
Beispiel #9
0
        public void Offset_RollBackStart_BaseValue()
        {
            const int BASE_VALUE   = 0;
            const int CHANGE_VALUE = 1;

            var offsetTokenDispatcher = new OffsetTokenDispatcher();
            var offsetToken           = offsetTokenDispatcher.CurrentToken;
            var dispatcher            = new TrackDispatcher(offsetTokenDispatcher);

            var trackValue = new TrackValue <int>(BASE_VALUE, dispatcher);

            trackValue.Value = CHANGE_VALUE;

            dispatcher.Offset(offsetToken);

            Assert.AreEqual(trackValue.Value, BASE_VALUE);
        }
Beispiel #10
0
 public TrackList(IEnumerable <T> items, TrackDispatcher trackDispatcher)
 {
     this.items.AddRange(items);
 }
 public TrackCollection(TrackDispatcher trackDispatcher)
     : base(trackDispatcher)
 {
 }
Beispiel #12
0
 public ComponentBase(TrackDispatcher trackDispatcher)
 {
     TrackDispatcher = trackDispatcher ?? throw new ArgumentNullException();
 }
Beispiel #13
0
 public TrackList(TrackDispatcher trackDispatcher)
     : base(trackDispatcher)
 {
 }
Beispiel #14
0
 /// <summary>
 /// Создать отслеживаемый список значений
 /// </summary>
 /// <typeparam name="T">Тип элемента списка</typeparam>
 /// <param name="trackDispatcher">Текущий диспетчер</param>
 /// <returns>Отслеживаемый список</returns>
 public static ITrackList <T> CreateList <T>(this TrackDispatcher trackDispatcher)
 {
     return(new TrackList <T>(trackDispatcher));
 }
Beispiel #15
0
 /// <summary>
 /// Создать отслеживаемый список значений
 /// </summary>
 /// <typeparam name="T">Тип элемента списка</typeparam>
 /// <param name="trackDispatcher">Текущий диспетчер</param>
 /// <param name="items">Значения для инициализации</param>
 /// <returns>Отслеживаемый список</returns>
 public static ITrackList <T> CreateList <T>(this TrackDispatcher trackDispatcher, IEnumerable <T> items)
 {
     return(new TrackList <T>(items, trackDispatcher));
 }
Beispiel #16
0
 /// <summary>
 /// Создать отслеживаемый словарь
 /// </summary>
 /// <typeparam name="TKey">Тип ключа</typeparam>
 /// <typeparam name="TValue">Тип значения</typeparam>
 /// <param name="trackDispatcher">Текущий диспетчер</param>
 /// <returns>Отслеживаемый словать</returns>
 public static ITrackDictionary <TKey, TValue> CreateDictionary <TKey, TValue>(this TrackDispatcher trackDispatcher)
 {
     return(new TrackDictionary <TKey, TValue>(trackDispatcher));
 }
Beispiel #17
0
 /// <summary>
 /// Создать отслеживаемое значение на основе указаного диспетчера
 /// </summary>
 /// <typeparam name="T">Тип создаваемого значения</typeparam>
 /// <param name="trackDispatcher">Текущий диспетчер</param>
 /// <param name="initValue"></param>
 /// <returns>Отслеживаемое значение</returns>
 public static ITrackValue <T> CreateValue <T>(this TrackDispatcher trackDispatcher, T initValue)
 {
     return(new TrackValue <T>(initValue, trackDispatcher));
 }
Beispiel #18
0
 /// <summary>
 /// Создать множество уникальных значений
 /// </summary>
 /// <typeparam name="T">Тип значения</typeparam>
 /// <param name="trackDispatcher">Текущий диспетчер</param>
 /// <returns>Множество уникальных значений</returns>
 public static ITrackSet <T> CreateSet <T>(this TrackDispatcher trackDispatcher)
 {
     return(new TrackCollectionUnique <T>(trackDispatcher));
 }
Beispiel #19
0
 public Location(TrackDispatcher trackDispatcher)
     : base(trackDispatcher)
 {
 }
 public TrackDictionary(TrackDispatcher trackDispatcher)
     : base(trackDispatcher)
 {
 }