/// <summary> /// Decrement all indexes for items in the manager instances /// </summary> /// <param name="equalOrAboveStart">items with an index that is equal or above to this argument</param> internal void DecrementItemIndex(int equalOrAboveStart) { foreach (var item in Items) { if (item.Key.State == ItemEntryState.Deleted && item.Value >= equalOrAboveStart) { ItemIndexDecrement itemDecrement = GetIndexDecrement(item.Key, true); itemDecrement.DecrementValue++; } } }
/// <summary> /// Get an index decrement info instance /// </summary> /// <param name="entry">target item</param> /// <param name="autoCreateNew">auto create new if not exists</param> /// <returns>ItemIndexDecrement instance or null(if not autoCreateNew)</returns> internal ItemIndexDecrement GetIndexDecrement(ItemEntry entry, bool autoCreateNew) { foreach (var item in _decrementMemory) { if (item.Item == entry) { return(item); } } if (autoCreateNew) { ItemIndexDecrement newDecrement = new ItemIndexDecrement(entry); _decrementMemory.Add(newDecrement); return(newDecrement); } else { return(null); } }
/// <summary> /// Get an index decrement info instance /// </summary> /// <param name="entry">target item</param> /// <param name="autoCreateNew">auto create new if not exists</param> /// <returns>ItemIndexDecrement instance or null(if not autoCreateNew)</returns> internal ItemIndexDecrement GetIndexDecrement(ItemEntry entry, bool autoCreateNew) { foreach (var item in _decrementMemory) { if (item.Item == entry) return item; } if (autoCreateNew) { ItemIndexDecrement newDecrement = new ItemIndexDecrement(entry); _decrementMemory.Add(newDecrement); return newDecrement; } else return null; }