Пример #1
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);
        }