Ejemplo n.º 1
0
 public virtual void Clear()
 {
     _items.Clear();
     if (SaveStrategy.ShouldSaveNow())
     {
         Save();
     }
     OnItemsChanged(new List <T>());
 }
Ejemplo n.º 2
0
        public void Add(IEnumerable <T> items)
        {
            var list = items.ToList();

            _items.AddRange(list);
            if (SaveStrategy.ShouldSaveNow())
            {
                Save();
            }
            OnItemsAdded(list);
            OnItemsChanged(list);
        }
Ejemplo n.º 3
0
 public virtual void Add(T item)
 {
     _items.Add(item);
     if (SaveStrategy.ShouldSaveNow())
     {
         Save();
     }
     OnItemsAdded(new List <T> {
         item
     });
     OnItemsChanged(new List <T> {
         item
     });
 }
Ejemplo n.º 4
0
        public virtual bool Remove(T item)
        {
            var removed = _items.Remove(item);

            if (SaveStrategy.ShouldSaveNow())
            {
                Save();
            }
            OnItemsRemoved(new List <T> {
                item
            });
            OnItemsChanged(new List <T> {
                item
            });
            return(removed);
        }
Ejemplo n.º 5
0
        public virtual int Remove(IEnumerable <T> items)
        {
            var itemsToRemove = items.ToList();
            var removedItems  = new List <T>();

            foreach (var item in itemsToRemove)
            {
                if (_items.Remove(item))
                {
                    removedItems.Add(item);
                }
            }
            if (SaveStrategy.ShouldSaveNow())
            {
                Save();
            }
            OnItemsRemoved(removedItems);
            OnItemsChanged(removedItems);
            return(removedItems.Count());
        }
Ejemplo n.º 6
0
        public async virtual Task <int> UpdateAsync(IEnumerable <T> items)
        {
            var itemsToUpdate = items.ToList();

            foreach (var item in itemsToUpdate)
            {
                var index = _items.IndexOf(item);
                if (index > -1)
                {
                    _items.RemoveAt(index);
                    _items.Insert(index, item);
                }
            }
            if (SaveStrategy.ShouldSaveNow())
            {
                await SaveAsync();
            }
            OnItemsUpdated(itemsToUpdate);
            OnItemsChanged(itemsToUpdate);
            return(itemsToUpdate.Count());
        }
Ejemplo n.º 7
0
        public async virtual Task <int> UpdateAsync(T item)
        {
            var index = _items.IndexOf(item);

            if (index > -1)
            {
                _items.RemoveAt(index);
                _items.Insert(index, item);
            }
            if (SaveStrategy.ShouldSaveNow())
            {
                await SaveAsync();
            }
            OnItemsUpdated(new List <T> {
                item
            });
            OnItemsChanged(new List <T> {
                item
            });
            return(1);
        }