private void FindTable(string itemPath, string text, FindOptions options, FindTableCacheInfo cacheInfo, List <FindResultInfo> results) { int index = 0; foreach (var row in cacheInfo.Rows) { int c = 0; foreach (var value in row.Values) { if (value != null && value.IndexOf(text) >= 0) { var resultItem = new FindResultInfo() { Path = itemPath, Row = index, ColumnName = cacheInfo.Columns[c], Value = value, Tags = row.Tags, IsEnabled = row.IsEnabled, ModificationInfo = row.ModificationInfo, }; results.Add(resultItem); } c++; } index++; } }
public FindResultItemViewModel(FindResultInfo resultInfo) { this.resultInfo = resultInfo; var itemName = new ItemName(resultInfo.Path); this.categoryName = itemName.CategoryPath.Trim(PathUtility.SeparatorChar); this.typeName = itemName.Name; }
private bool FindNextFromResult(object param, bool first) { try { var arr = param as object[]; string findString = arr[0] as string; dynamic list = arr[1]; bool matchCase = (bool)arr[2]; object selectedItem = arr[3]; int startIndex = 0; if (first) startIndex = 0; else if (selectedItem != null) { startIndex = list.IndexOf(selectedItem) + 1; if (startIndex > list.Count + 1) startIndex = 0; } for (int i = startIndex; i < list.Count; i++) { dynamic item = list[i]; dynamic logItem = item; string message = logItem.Message; if (matchCase == false) { message = message.ToUpper(); findString = findString.ToUpper(); } int findIndex = message.IndexOf(findString); if (findIndex >= 0) { FindResultInfo findResultInfo = new FindResultInfo(); findResultInfo.SelectedItem = item; findResultInfo.SelectionStart = findIndex; findResultInfo.SelectionLength = findString.Length; FindResult = findResultInfo; return true; } } return false; } catch { return false; } }
public async Task <FindResultInfo> Find(BookInfo incoming) { FindResultInfo result = await FindBook(incoming); if (result.Status != MatchStatus.UpToDate) { return(result); } FindResultInfo fileResult = FindBookFiles(incoming, result); return(fileResult); }
public async Task <IEnumerable <MatchInfo> > Match(IEnumerable <MatchInfo> incoming) { var matches = new List <MatchInfo>(); IEnumerable <MatchInfo> toMatch = incoming .Where(b => b.IsSelected) .Where(b => b.Status == MatchStatus.NotAttempted); foreach (var match in toMatch) { FindResultInfo result = await _bookFinder.Find(match.Book); match.SetMatch(result.Book, result.Status, result.NewTypes); matches.Add(match); _messages.Write("Match done: {0}: {1}", match.Book.Title, match.Status); } return(matches); }
FindResultInfo FindBookFiles(BookInfo incoming, FindResultInfo foundResult) { string [] foundTypes = foundResult.Book.Types.ToArray(); IEnumerable <string> missing = incoming.Types.Where(t => !foundTypes.Contains(t)); if (missing.Any()) { return(new FindResultInfo { Book = foundResult.Book, Status = MatchStatus.NewFiles, NewTypes = missing }); } else { return(new FindResultInfo { Book = foundResult.Book, Status = MatchStatus.UpToDate }); } }
public FindResultItemViewModel(FindResultInfo resultInfo) { this.resultInfo = resultInfo; this.itemName = new ItemName(resultInfo.Path); }