private int LoadSentences(IEnumerable <BookTreeNodeVM> bookTreeNodeVMs, List <Sentence> sentences, int loadedSentenceCount = 0) { float sentenceCount = sentences.Count(); foreach (var item in bookTreeNodeVMs) { if (item.Books.Count > 0) { loadedSentenceCount = LoadSentences(item.Books, sentences, loadedSentenceCount); continue; } var bookSentences = sentences.Where(x => x.BookName == item.BookName).ToList(); booksDict.Add(item.BookName, bookSentences); sentences.RemoveAll(x => x.BookName == item.BookName); loadedSentenceCount += bookSentences.Count; if (item.Books.Count == 0) { BooksTreeLeafsVM.Add(item); } _uiContext.Send((obj) => { ProgressIndeterminate = false; ProgressText = item.BookName; Progress = (int)(loadedSentenceCount / sentenceCount * 100); }, null); } return(loadedSentenceCount); }
private List <Sentence> GetSentencesList() { return(BooksTreeLeafsVM .Where(x => x.Checked && x.Books.Count == 0) .Join(booksDict, bt => bt.BookName, bd => bd.Key, (bt, bd) => bd.Value) .SelectMany(x => x) .ToList()); }