Ejemplo n.º 1
0
        private List <HeadwordWithDictionariesContract> MapHeadwordsToGroupedList(List <HeadwordContract> headwords)
        {
            var resultList = new List <HeadwordWithDictionariesContract>();
            HeadwordWithDictionariesContract lastHeadword = null;

            foreach (var headwordContract in headwords)
            {
                if (lastHeadword == null || lastHeadword.Headword != headwordContract.DefaultHeadword)
                {
                    lastHeadword = new HeadwordWithDictionariesContract
                    {
                        Headword     = headwordContract.DefaultHeadword,
                        Dictionaries = new List <HeadwordBookInfoContract>()
                    };
                    resultList.Add(lastHeadword);
                }

                foreach (var resourcePageId in headwordContract.HeadwordItems.Select(x => x.ResourcePageId).Distinct())
                {
                    var dictionaryInfo = new HeadwordBookInfoContract
                    {
                        BookId            = headwordContract.ProjectId,
                        HeadwordId        = headwordContract.Id,
                        HeadwordVersionId = headwordContract.VersionId,
                        PageId            = resourcePageId,
                    };
                    lastHeadword.Dictionaries.Add(dictionaryInfo);
                }
            }

            return(resultList);
        }
Ejemplo n.º 2
0
        private HeadwordListContract ConvertHeadwordSearchToContract(IList <HeadwordSearchResult> databaseResult)
        {
            var dictionaryList   = new Dictionary <string, DictionaryContract>();
            var headwordList     = new List <HeadwordContract>();
            var headwordContract = new HeadwordContract();

            foreach (var headword in databaseResult)
            {
                DictionaryContract dictionaryContract;
                if (!dictionaryList.TryGetValue(headword.BookGuid, out dictionaryContract))
                {
                    dictionaryContract = new DictionaryContract
                    {
                        BookAcronym      = headword.BookAcronym ?? headword.SourceAbbreviation,
                        BookTitle        = headword.BookTitle,
                        BookXmlId        = headword.BookGuid,
                        BookVersionXmlId = headword.BookVersionId
                    };
                    dictionaryList.Add(dictionaryContract.BookXmlId, dictionaryContract);
                }

                var bookInfoContract = new HeadwordBookInfoContract
                {
                    BookXmlId  = headword.BookGuid,
                    EntryXmlId = headword.XmlEntryId,
                    Image      = headword.Image
                };

                if (headword.Headword == headwordContract.Headword)
                {
                    headwordContract.Dictionaries.Add(bookInfoContract);
                }
                else
                {
                    headwordContract = new HeadwordContract
                    {
                        Dictionaries = new List <HeadwordBookInfoContract> {
                            bookInfoContract
                        },
                        Headword = headword.Headword
                    };
                    headwordList.Add(headwordContract);
                }
            }

            return(new HeadwordListContract
            {
                BookList = dictionaryList,
                HeadwordList = headwordList
            });
        }