/// <summary> /// Reorder. Expects a serialized list from scriptaculous /// </summary> /// <param name="list"></param> public static void ReOrder(string list) { list = Regex.Replace(list, @"Category\-|Link\-|Post\-", string.Empty); var items = list.Split(new[] { "&" }, StringSplitOptions.RemoveEmptyEntries); int i = 0; NavigationSettings settings = Get(); foreach (string id in items) { Guid g = new Guid(id); foreach (DynamicNavigationItem item in settings.SafeItems()) { if (item.Id == g) { item.Order = i; i++; break; } } } settings.SafeItems() .Sort( delegate(DynamicNavigationItem i1, DynamicNavigationItem i2) { return(Comparer <int> .Default.Compare(i1.Order, i2.Order)); } ); settings.Save(); }
/// <summary> /// Adds the new item to the list /// </summary> /// <param name="item"></param> public static void Add(DynamicNavigationItem item) { NavigationSettings settings = Get(); item.Order = Int16.MaxValue; settings.SafeItems().Add(item); settings.Save(); }
/// <summary> /// Remove an item by Id /// </summary> /// <param name="id"></param> public static void Remove(Guid id) { NavigationSettings settings = Get(); int index = -1; for (int i = 0; i < settings.SafeItems().Count; i++) { if (settings.SafeItems()[i].Id == id) { index = i; break; } } if (index > -1) { settings.SafeItems().RemoveAt(index); settings.Save(); } }