public virtual void Clear() { _items.Clear(); if (SaveStrategy.ShouldSaveNow()) { Save(); } OnItemsChanged(new List <T>()); }
public void Add(IEnumerable <T> items) { var list = items.ToList(); _items.AddRange(list); if (SaveStrategy.ShouldSaveNow()) { Save(); } OnItemsAdded(list); OnItemsChanged(list); }
public virtual void Add(T item) { _items.Add(item); if (SaveStrategy.ShouldSaveNow()) { Save(); } OnItemsAdded(new List <T> { item }); OnItemsChanged(new List <T> { item }); }
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); }
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()); }
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()); }
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); }