/// <summary> /// Repositions the index item. /// </summary> /// <param name="cacheIndexInternal">The cache index internal.</param> /// <param name="indexInfo">The index info.</param> /// <param name="addItem">The add item.</param> /// <param name="searchIndex">Index of the search.</param> /// <param name="internalItem">The internal item.</param> /// <param name="comparer">The comparer.</param> private static void RepositionIndexItem(CacheIndexInternal cacheIndexInternal, Index indexInfo, IndexDataItem addItem, int searchIndex, InternalItem internalItem, InternalItemComparer comparer) { // Remove the Item from current position cacheIndexInternal.DeleteItem(searchIndex, false); // Determine where to insert the Item int newSearchIndex = cacheIndexInternal.GetInsertPosition(addItem, indexInfo.PrimarySortInfo.SortOrderList[0].SortBy, comparer); // insert the item at new position cacheIndexInternal.InsertItem(internalItem, newSearchIndex, false); }