/// <summary> /// Reorders the attribute list. /// </summary> /// <param name="itemList">The item list.</param> /// <param name="oldIndex">The old index.</param> /// <param name="newIndex">The new index.</param> private void ReorderAttributeList( ViewStateList<Attribute> itemList, int oldIndex, int newIndex ) { var movedItem = itemList.Where( a => a.Order == oldIndex ).FirstOrDefault(); if ( movedItem != null ) { if ( newIndex < oldIndex ) { // Moved up foreach ( var otherItem in itemList.Where( a => a.Order < oldIndex && a.Order >= newIndex ) ) { otherItem.Order = otherItem.Order + 1; } } else { // Moved Down foreach ( var otherItem in itemList.Where( a => a.Order > oldIndex && a.Order <= newIndex ) ) { otherItem.Order = otherItem.Order - 1; } } movedItem.Order = newIndex; } }
public virtual void ReorderAttributeList( ViewStateList<Attribute> attributeList, int oldIndex, int newIndex ) { var movedItem = attributeList.Where( a => a.Order == oldIndex ).FirstOrDefault(); if ( movedItem != null ) { foreach ( var otherItem in attributeList.Where( a => a.Order != oldIndex && a.Order >= newIndex ) ) { otherItem.Order = otherItem.Order + 1; } movedItem.Order = newIndex; } }