public void OnSelectMruItem(SearchMruItem item) { ThrowIfDisposedOrSearchNotSetup(); var mruStore = IoC.Get <ISearchMruItemStore>(); mruStore.SetMruItem(ref _searchCategory, item.Text); var newItem = new WindowSearchMruItem(item.Text, this); var itemsCopy = DataSource.SearchMruItems.ToList(); RemoveItem(ref itemsCopy, item); itemsCopy.Insert(0, newItem); DataSource.SearchMruItems = itemsCopy; }
private bool RemoveItem(ref List <SearchMruItem> collection, SearchMruItem item) { var count = collection.Count; for (var i = 0; i < count; ++i) { var originalItem = collection.ElementAt(i); if (originalItem == item) { collection.RemoveAt(i); return(true); } } return(false); }
public void OnDeleteMruItem(SearchMruItem item) { ThrowIfDisposedOrSearchNotSetup(); var mruStore = IoC.Get <ISearchMruItemStore>(); mruStore.DeleteMruItem(ref _searchCategory, item.Text); var maximumMruItems = DataSource.SearchSettings.MaximumMruItems; var strArray = new string[maximumMruItems]; var items = mruStore.GetMruItems(ref _searchCategory, SearchString, maximumMruItems, strArray); var itemsCopy = DataSource.SearchMruItems.ToList(); RemoveItem(ref itemsCopy, item); if (items <= itemsCopy.Count) { DataSource.SearchMruItems = itemsCopy; return; } itemsCopy.Add(new WindowSearchMruItem(strArray[items - 1], this)); DataSource.SearchMruItems = itemsCopy; }