示例#1
0
        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);
        }
示例#2
0
 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());
 }