Ejemplo n.º 1
0
        public void PersistCardSearchHistory(SingleCardParameters searchParams, DateTime createdDateTime, DateTime updatedDateTime)
        {
            var cardSearchHistoryModel = GetCardSearchHistoryModel(searchParams, createdDateTime, updatedDateTime);
            var cardSearchHistory      = GetCardSearchHistory(cardSearchHistoryModel);

            _context.CardSearchHistory.Add(cardSearchHistory);
            _context.SaveChanges();
        }
Ejemplo n.º 2
0
        public CardModel GetCard(SingleCardParameters singleCardParameters)
        {
            var param  = singleCardParameters;
            var utcNow = DateTime.UtcNow;

            if (param.LanguageId == null || param.LanguageId == Guid.Empty)
            {
                var englishLanguageId = _languageService.GetLanguageId(TypeOfLanguage.English);
                param.LanguageId = englishLanguageId;
            }

            var cards = (from card in _context.Cards
                         join cardDetail in _context.CardDetails on card.CardId equals cardDetail.CardId
                         join language in _context.Languages on cardDetail.LanguageId equals language.LanguageId
                         join cardSet in _context.Sets on card.CardSetId equals cardSet.SetId
                         join cardRarity in _context.Rarities on card.CardRarityId equals cardRarity.RarityId
                         join cardType in _context.CardTypes on card.CardTypeId equals cardType.CardTypeId
                         join lessonType in _context.LessonTypes on card.LessonTypeId equals lessonType.LessonTypeId into lessonTypeDefault
                         from lessonType in lessonTypeDefault.DefaultIfEmpty()
                         join provides in _context.CardProvidesLessons on card.CardId equals provides.CardId into cardsProvidesLesson
                         from provides in cardsProvidesLesson.DefaultIfEmpty()
                         join plesson in _context.LessonTypes on provides.LessonId equals plesson.LessonTypeId into providesLesson
                         from plesson in providesLesson.DefaultIfEmpty()
                         where !card.Deleted && !cardSet.Deleted && !cardRarity.Deleted && !cardType.Deleted &&
                         language.LanguageId == param.LanguageId && cardSet.ShortName == param.SetShortName &&
                         card.CardNumber == param.CardNumber
                         select new
            {
                card,
                cardDetail,
                cardSet,
                cardRarity,
                cardType,
                language,
                lessonType,
                plesson,
                provides
            });

            var cardModel = cards.Select(x => CardService.GetCardModel(x.card, x.cardSet, x.cardRarity, x.cardType, x.cardDetail,
                                                                       x.language, x.lessonType, x.plesson, x.provides)).SingleOrDefault();

            if (cardModel != null)
            {
                cardModel.SubTypes = _cardSubTypeService.GetCardSubTypes(cardModel.CardId);
                cardModel          = GetCardsWithImages(new List <CardModel>()
                {
                    cardModel
                })[0];
                cardModel.MetaDescription    = GetMetaDescription(cardModel);
                cardModel.RulingRestrictions = _cardRulingRestrictionService.GetCardRulingRestrictionsByCardId(cardModel.CardId).OrderBy(x => x.Format).ToList();

                _cardSearchHistoryService.PersistCardSearchHistory(param, utcNow, utcNow);
            }

            return(cardModel);
        }
Ejemplo n.º 3
0
        public IActionResult OnGet(string setShortName, string cardNumber, string langCode, string cardName)
        {
            //This isn't the best way to do this, but this will be eventually remove. And it was a
            //bitch to get multiple routes to work with different values. So here we'll just check if a card ID was passed in and if so,
            //grab the card details and redirect back to this page. this is just for backwards compatibility
            var cardId = Request.Query["cardId"];

            if (!string.IsNullOrEmpty(cardId) && Guid.TryParse(cardId, out Guid g))
            {
                var route = _singleCardService.GetSingleCardRoute(Guid.Parse(cardId));
                //return RedirectToPage("Card", new { setShortName = route.SetShortName, cardNumber = route.CardNumber, cardName = route.CardName });
                return(Redirect($"Card/{route.SetShortName}/{route.CardNumber}/{route.CardName}"));
            }

            SetShortName = setShortName;
            CardNumber   = cardNumber;

            if (string.IsNullOrEmpty(SetShortName) || string.IsNullOrEmpty(CardNumber))
            {
                ShowCardData = false;
            }
            else
            {
                try
                {
                    var languageId    = _languageService.GetLanguageIdByCode(langCode);
                    var websiteSource = _sourceService.GetSource(SourceType.Website);
                    var param         = new SingleCardParameters()
                    {
                        SetShortName = SetShortName,
                        CardNumber   = CardNumber,
                        LanguageId   = languageId,
                    };

                    Card  = _singleCardService.GetCard(param);
                    Rules = _cardRulingService.GetCardRules(Card.CardId);

                    ShowCardData = Card != null;
                }
                catch (Exception ex)
                {
                    //TODO: idk, something
                }
            }

            return(null);
        }
Ejemplo n.º 4
0
        private CardSearchHistoryModel GetCardSearchHistoryModel(SingleCardParameters searchParams, DateTime createdDateTime, DateTime updatedDateTime)
        {
            var userId = searchParams.PerformedByUserId == null ? Guid.Empty : (Guid)searchParams.PerformedByUserId;

            return(new CardSearchHistoryModel()
            {
                CardId = searchParams.CardId,
                CardSearchHistoryId = Guid.NewGuid(),
                UserId = userId,
                LanguageId = searchParams.LanguageId,
                SourceId = searchParams.SourceId,
                CreatedById = userId,
                CreatedDate = createdDateTime,
                UpdatedById = userId,
                UpdatedDate = updatedDateTime,
                Deleted = false,
            });
        }