//public DashboardDetailsCardResponse() //{ //} public static DashboardDetailsCardResponse Build(string userId, Dictionary <string, ConfigModelDeck> dictDecks, Card c, Dictionary <string, IDeck> decks, KeyValuePair <string, CardRequiredInfoByDeck>[] decksInfo, UtilColors utilColors) { var ret = new DashboardDetailsCardResponse(); var missing = decksInfo.Where(i => decks.ContainsKey(i.Key) == false).ToArray(); if (missing.Any()) { Log.Error("User {userId} Error in DashboardDetailsCardResponse: Cannot find these decks: <{ids}>. Original ids: <{ids2}>", userId, string.Join(",", missing.Select(x => x.Key)), string.Join(",", missing.Select(x => x.Value.DeckId))); } ret.InfoByDeck = decksInfo .Where(i => missing.Any(x => x.Key == i.Key) == false) .Select(i => new DashboardDetailsCardDto { DeckId = i.Key, DeckName = decks[i.Key].Name, NbMain = i.Value.ByCard[c.name].NbRequiredMain, NbSideboard = i.Value.ByCard[c.name].NbRequiredSideboard, DeckColor = utilColors.FromDeck(decks[i.Key]), DeckDateCreated = dictDecks[i.Key].DateCreatedUtc, DeckScraperTypeId = decks[i.Key].ScraperType.Id, }) .ToArray(); return(ret); }
public AutoMapperRawDeckToColorConverter(CacheSingleton <Dictionary <int, Card> > cacheCards, UtilColors utilColors) { this.dictAllCards = cacheCards.Get(); this.utilColors = utilColors; }
public AutoMapperRawDeckToColorConverter(UtilColors utilColors) { this.utilColors = utilColors; }
public MapperProfileWebModels( UtilColors utilColors, AutoMapperRawDeckToColorConverter rawDeckToColor, AutoMapperIntToCardArtConverter intToCardArt, AutoMapperRawDeckConverter rawDeckConverter, AutoMapperManaCurveConverter manaCurveConverter, AutoMapperCollationToSetConverter collationToSet) { CreateMap <Card, CardDto>() .ForMember(i => i.IdArena, i => i.MapFrom(x => x.grpId)); CreateMap <Card, CardDtoFull>(); CreateMap <CardDtoFull, Card>(); CreateMap <CardWithAmount, CardWithAmountDto>() .ForMember(i => i.IdArena, i => i.MapFrom(x => x.Card.grpId)) .ForMember(i => i.Name, i => i.MapFrom(x => x.Card.name)) .ForMember(i => i.Set, i => i.MapFrom(x => x.Card.set)) .ForMember(i => i.Rarity, i => i.MapFrom(x => x.Card.GetRarityEnum(false).ToString())) .ForMember(i => i.ImageCardUrl, i => i.MapFrom(x => x.Card.imageCardUrl)) //.ForMember(i => i.ImageArtUrl, i => i.MapFrom(x => x.Card.imageArtUrl)) .ForMember(i => i.Color, i => i.MapFrom(x => x.Card.type.Contains("Land") ? "Land" : x.Card.colors == null ? "" : string.Join("", x.Card.colors))) ; //CreateMap<CardWithAmountDto, CollectionCardDto>(); CreateMap <CardWithAmount, CollectionCardDto>() .IncludeBase <CardWithAmount, CardWithAmountDto>() .ForMember(i => i.NotInBooster, i => i.MapFrom(x => x.Card.notInBooster)); //CreateMap<DateSnapshotInfo, GetUserHistoryDto>(); //CreateMap<DateSnapshotDiff, GetUserHistoryDto>(); ////CreateMap<UserHistorySnapshot, GetUserHistoryDto>() //// .ForMember(i => i.GemsChange, i => i.MapFrom(x => x.Diff.GemsChange)) //// .ForMember(i => i.GoldChange, i => i.MapFrom(x => x.Diff.GoldChange)) //// .ForMember(i => i.NewCards, i => i.MapFrom(x => x.Diff.NewCards)) //// .ForMember(i => i.VaultProgress, i => i.MapFrom(x => x.Diff.VaultProgress)) //// .ForMember(i => i.VaultProgress, i => i.MapFrom(x => x.Diff.WildcardsChange)); CreateMap <DeckCard, DeckCardDto>() .IncludeBase <CardWithAmount, DeckCardDto>(); CreateMap <CardWithAmount, DeckCardDto>() .ForMember(i => i.Name, i => i.MapFrom(x => x.Card.name)) .ForMember(i => i.ImageCardUrl, i => i.MapFrom(x => x.Card.imageCardUrl)) .ForMember(i => i.ImageThumbnail, i => i.MapFrom(x => new Util().GetThumbnailUrl(x.Card.imageArtUrl))) .ForMember(i => i.Rarity, i => i.MapFrom(x => x.Card.GetRarityEnum(false).ToString())) .ForMember(i => i.Type, i => i.MapFrom(x => x.Card.GetSimpleType())) .ForMember(i => i.Set, i => i.MapFrom(x => x.Card.set)) .ForMember(i => i.ManaCost, i => i.MapFrom(x => x.Card.mana_cost)) .ForMember(i => i.Cmc, i => i.MapFrom(x => x.Card.cmc)) .ForMember(i => i.Color, i => i.MapFrom(x => x.Card.type.Contains("Land") ? "Land" : x.Card.colors == null ? "" : string.Join("", x.Card.colors))) .ForMember(m => m.NbMissing, o => o.Ignore()); //new DeckCardDto //{ // Name = i.Card.name, // ImageCardUrl = i.Card.imageCardUrl,//.images["normal"], // //ImageArtUrl = i.Card.imageArtUrl,//.images["normal"], // Rarity = i.Card.GetRarityEnum(false).ToString(), // Type = i.Card.GetSimpleType(), // Amount = i.Amount, // NbMissing = // hCards[i.IsSideboard].Contains(i.Card.name) ? 0 : (deckInfo.CardsRequired.ByCard.ContainsKey(i.Card) ? // (i.IsSideboard ? deckInfo.CardsRequired.ByCard[i.Card].NbMissingSideboard : deckInfo.CardsRequired.ByCard[i.Card].NbMissingMain) : 0), //} CreateMap <MatchResult, MatchDto>() .IncludeBase <MatchResult, MatchDtoLightweight>(); CreateMap <MatchResult, MatchDtoLightweight>() .ForMember(i => i.OpponentName, i => i.MapFrom(x => x.Opponent.ScreenName)) .ForMember(i => i.FirstTurn, i => i.MapFrom(x => x.Games.Any() == false ? FirstTurnEnum.Unknown.ToString() : x.Games.First().FirstTurn.ToString())) .ForMember(i => i.OpponentRank, i => i.MapFrom(x => $"{x.Opponent.RankingClass}_{x.Opponent.RankingTier}")) //.ForMember(i => i.Outcome, i => i.MapFrom(x => string.Join('-', x.Games.Select(y => y.Outcome.ToString()[0])))) .ForMember(i => i.OpponentDeckColors, i => i.ConvertUsing(utilColors, x => x.GetOpponentCardsSeen())) .ForMember(m => m.RankDelta, o => o.Ignore()); // ConfigModelRawDeck to DeckDto directly CreateMap <ConfigModelRawDeck, SimpleDeckDto>() .ForMember(i => i.Main, i => i.MapFrom(x => x.CardsMain)) .ForMember(i => i.Sideboard, i => i.MapFrom(x => x.CardsSideboard)) .ForMember(i => i.Colors, i => i.ConvertUsing(rawDeckToColor, x => x)) .ForMember(i => i.DeckImage, i => i.ConvertUsing(intToCardArt, x => x.DeckTileId)); CreateMap <GameDetail, GameDetailDto>(); CreateMap <CardTurnAction, CardTurnActionDto>() .ForMember(i => i.Card, i => i.MapFrom(x => x.CardGrpId)); CreateMap <Dictionary <int, int>, ICollection <CardWithAmountDto> >().ConvertUsing(rawDeckConverter); CreateMap <ConfigModelRankInfo, RankInfoDto>(); CreateMap <HistorySummaryForDate, GetUserHistorySummaryDto>() .ForMember(i => i.Wins, i => i.MapFrom(x => x.OutcomesByMode.Values.Sum(y => y.Wins))) .ForMember(i => i.Losses, i => i.MapFrom(x => x.OutcomesByMode.Values.Sum(y => y.Losses))) .ForMember(i => i.BoostersChange, i => i.MapFrom(x => x.BoostersChange.Select(b => new KeyValuePair <string, int>(b.Key, b.Value)))); //CreateMap<DateSnapshotInfo, GetUserHistoryForDateResponseInfo>() // .ForMember(i => i.ConstructedRank, i => i.MapFrom(x => x.RankSynthetic.FirstOrDefault(y => y.Format == RankFormatEnum.Constructed) ?? new ConfigModelRankInfo(RankFormatEnum.Constructed))) // .ForMember(i => i.LimitedRank, i => i.MapFrom(x => x.RankSynthetic.FirstOrDefault(y => y.Format == RankFormatEnum.Limited) ?? new ConfigModelRankInfo(RankFormatEnum.Limited))) // .ForMember(i => i.Gold, i => i.MapFrom(x => x.Inventory.Gold)) // .ForMember(i => i.Gems, i => i.MapFrom(x => x.Inventory.Gems)) // .ForMember(i => i.Wildcards, i => i.MapFrom(x => x.Inventory.Wildcards)) // .ForMember(i => i.VaultProgress, i => i.MapFrom(x => x.Inventory.VaultProgress)); //CreateMap<DateSnapshotDiff, GetUserHistoryForDateResponseDiff>(); CreateMap <CardForDraftPick, CardForDraftPickDto>() .ForMember(i => i.IdArena, i => i.MapFrom(x => x.grpId)) .ForMember(i => i.ManaCost, i => i.MapFrom(x => x.mana_cost)); CreateMap <int, CardDto>() .ConvertUsing((i, dto, ctx) => ctx.Mapper.Map <CardDto>(ctx.Mapper.Map <Card>(i))); CreateMap <MtgaDeckSummary, MtgaDeckSummaryDto>() .ForMember(i => i.FirstPlayed, i => i.MapFrom(x => x.FirstPlayed.ToString("yyyy-MM-dd"))) .ForMember(i => i.LastPlayed, i => i.MapFrom(x => x.LastPlayed.ToString("yyyy-MM-dd"))); //.ForMember(i => i.DeckColor, i => i.ConvertUsing(rawDeckToColorConverter, x => x.DeckUsed)); CreateMap <MtgaDeckDetail, MtgaDeckDetailDto>() //.ForMember(i => i.FirstPlayed, i => i.MapFrom(x => x.FirstPlayed.ToString("yyyy-MM-dd"))) //.ForMember(i => i.LastPlayed, i => i.MapFrom(x => x.LastPlayed.ToString("yyyy-MM-dd"))); //.ForMember(i => i.DeckColor, i => i.ConvertUsing(rawDeckToColorConverter, x => x.DeckUsed)) //.ForMember(i => i.CardsMain, i => i.MapFrom(x => x.DeckUsed.CardsMain)) //.ForMember(i => i.CardsSideboard, i => i.MapFrom(x => x.DeckUsed.CardsSideboard)); .ForMember(i => i.CardsMain, i => i.MapFrom(x => Mapper.Map <ICollection <CardWithAmount> >(x.CardsMain))) .ForMember(i => i.CardsSideboard, i => i.MapFrom(x => Mapper.Map <ICollection <CardWithAmount> >(x.CardsSideboard))) .ForMember(i => i.ManaCurve, i => i.ConvertUsing(manaCurveConverter, x => x.CardsMain)); CreateMap <MtgaDeckAnalysis, MtgaDeckAnalysisDto>(); CreateMap <MtgaDeckAnalysisMatchInfo, MtgaDeckAnalysisMatchInfoDto>(); CreateMap <PlayerProgress, PlayerProgressDto>(); CreateMap <Inventory, InventoryResponseDto>() .ForMember(i => i.Boosters, i => i.MapFrom(x => x.Boosters)); CreateMap <InventoryBooster, InventoryBoosterDto>() .ForMember(i => i.Set, i => i.ConvertUsing(collationToSet, x => x.CollationId)); CreateMap <DeckSummary, DeckSummaryResponseDto>(); CreateMap <DeckTrackedSummary, DeckTrackedSummaryResponseDto>(); CreateMap <CardMissingDetailsModel, CardMissingDetailsModelResponseDto>(); CreateMap <InfoCardMissingSummary, InfoCardMissingSummaryResponseDto>(); CreateMap <AccountModel, AccountResponse>() .ForMember(m => m.IsAuthenticated, o => o.Ignore()) .ForMember(m => m.ResponseStatus, o => o.Ignore()) .ForMember(m => m.Message, o => o.Ignore()); CreateMap <EconomyEvent, EconomyEventDto>() .ForMember(i => i.Context, i => i.MapFrom(x => x.Context.Replace("PlayerInventory.", ""))); CreateMap <EconomyEventChange, EconomyEventChangeDto>(); CreateMap <Rank, RankDto>(); CreateMap <RankDelta, RankDeltaDto>(); }