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(); }
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); }
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); }
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, }); }