public async Task <ArticleTaskResult> ProcessItem(UnexpandedArticle item)
        {
            var response = new ArticleTaskResult {
                Article = item
            };

            var card = await _cardService.CardByName(item.Title);

            if (card != null)
            {
                var triviaSections = new List <CardTriviaSection>();

                var articleCardTrivia = await _wikiArticle.Simple(item.Id);

                foreach (var cardTriviaSection in articleCardTrivia.Sections)
                {
                    if (cardTriviaSection.Title.Equals("References", StringComparison.OrdinalIgnoreCase))
                    {
                        continue;
                    }

                    var rulingSection = new CardTriviaSection
                    {
                        Name   = cardTriviaSection.Title,
                        Trivia = SectionHelper.GetSectionContentList(cardTriviaSection)
                    };

                    triviaSections.Add(rulingSection);
                }

                await _cardTriviaService.Update(card.Id, triviaSections);
            }

            return(response);
        }
Пример #2
0
        public async Task <CardSectionDataTaskResult <CardSectionMessage> > Process(CardSectionMessage cardSectionData)
        {
            var cardSectionDataTaskResult = new CardSectionDataTaskResult <CardSectionMessage>
            {
                CardSectionData = cardSectionData
            };

            var card = await _cardService.CardByName(cardSectionData.Name);

            if (card != null)
            {
                await _cardTriviaService.DeleteByCardId(card.Id);

                var triviaSections = new List <TriviaSection>();

                foreach (var cardSection in cardSectionData.CardSections)
                {
                    var triviaSection = new TriviaSection
                    {
                        CardId  = card.Id,
                        Name    = cardSection.Name,
                        Created = DateTime.UtcNow,
                        Updated = DateTime.UtcNow
                    };

                    foreach (var trivia in cardSection.ContentList)
                    {
                        triviaSection.Trivia.Add(new Trivia
                        {
                            TriviaSection = triviaSection,
                            Text          = trivia,
                            Created       = DateTime.UtcNow,
                            Updated       = DateTime.UtcNow
                        });
                    }

                    triviaSections.Add(triviaSection);
                }

                if (triviaSections.Any())
                {
                    await _cardTriviaService.Update(triviaSections);
                }
            }
            else
            {
                cardSectionDataTaskResult.Errors.Add($"Card Trivia: card '{cardSectionData.Name}' not found.");
            }


            return(cardSectionDataTaskResult);
        }