@@ -32,29 +32,85 @@ internal static class AutoMapperConfiguration
3232
3333 public static IMapper Mapper { get { return mapper ; } }
3434
35+ private static SteamWebResponse < TDestination > ConstructSteamWebResponse < TSource , TDestination > ( ISteamWebResponse < TSource > response )
36+ {
37+ var newResponse = new SteamWebResponse < TDestination > ( ) ;
38+ newResponse . ContentLength = response . ContentLength ;
39+ newResponse . ContentType = response . ContentType ;
40+ newResponse . ContentTypeCharSet = response . ContentTypeCharSet ;
41+ newResponse . Expires = response . Expires ;
42+ newResponse . LastModified = response . LastModified ;
43+ newResponse . Data = Mapper . Map < TSource , TDestination > ( response . Data ) ;
44+ return newResponse ;
45+ }
46+
47+ private static void CreateSteamWebResponseMap < TSource , TDestination > ( IMapperConfiguration config )
48+ {
49+ config . CreateMap < ISteamWebResponse < TSource > , ISteamWebResponse < TDestination > > ( )
50+ . ConstructUsing ( src => ConstructSteamWebResponse < TSource , TDestination > ( src ) ) ;
51+ }
52+
3553 public static void Initialize ( )
3654 {
3755 if ( config == null )
3856 {
3957 config = new MapperConfiguration ( x =>
4058 {
41- x . CreateMap < ISteamWebResponse < ServerStatusResultContainer > , ISteamWebResponse < ServerStatusModel > > ( ) ;
42- x . CreateMap < ISteamWebResponse < GameItemResultContainer > , ISteamWebResponse < IReadOnlyCollection < GameItemModel > > > ( ) ;
43- x . CreateMap < ISteamWebResponse < HeroResultContainer > , ISteamWebResponse < IReadOnlyCollection < HeroModel > > > ( ) ;
44- x . CreateMap < ISteamWebResponse < ItemIconPathResultContainer > , ISteamWebResponse < string > > ( ) ;
45- x . CreateMap < ISteamWebResponse < RarityResultContainer > , ISteamWebResponse < IReadOnlyCollection < RarityModel > > > ( ) ;
46- x . CreateMap < ISteamWebResponse < ItemIconPathResultContainer > , ISteamWebResponse < string > > ( ) ;
47- x . CreateMap < ISteamWebResponse < ItemIconPathResultContainer > , ISteamWebResponse < string > > ( ) ;
48- x . CreateMap < ISteamWebResponse < ItemIconPathResultContainer > , ISteamWebResponse < string > > ( ) ;
49- x . CreateMap < ISteamWebResponse < ItemIconPathResultContainer > , ISteamWebResponse < string > > ( ) ;
50- x . CreateMap < ISteamWebResponse < ItemIconPathResultContainer > , ISteamWebResponse < string > > ( ) ;
51- x . CreateMap < ISteamWebResponse < ItemIconPathResultContainer > , ISteamWebResponse < string > > ( ) ;
52- x . CreateMap < ISteamWebResponse < ItemIconPathResultContainer > , ISteamWebResponse < string > > ( ) ;
59+ CreateSteamWebResponseMap < ServerStatusResultContainer , ServerStatusModel > ( x ) ;
60+ CreateSteamWebResponseMap < GameItemResultContainer , IReadOnlyCollection < GameItemModel > > ( x ) ;
61+ CreateSteamWebResponseMap < HeroResultContainer , IReadOnlyCollection < HeroModel > > ( x ) ;
62+ CreateSteamWebResponseMap < ItemIconPathResultContainer , string > ( x ) ;
63+ CreateSteamWebResponseMap < RarityResultContainer , IReadOnlyCollection < RarityModel > > ( x ) ;
64+ CreateSteamWebResponseMap < PrizePoolResultContainer , uint > ( x ) ;
65+ CreateSteamWebResponseMap < PlayerOfficialInfoResultContainer , PlayerOfficialInfoModel > ( x ) ;
66+ CreateSteamWebResponseMap < ProPlayerListResultContainer , ProPlayerDetailModel > ( x ) ;
67+ CreateSteamWebResponseMap < LeagueResultContainer , IReadOnlyCollection < LeagueModel > > ( x ) ;
68+ CreateSteamWebResponseMap < LiveLeagueGameResultContainer , IReadOnlyCollection < LiveLeagueGameModel > > ( x ) ;
69+ CreateSteamWebResponseMap < MatchDetailResultContainer , MatchDetailModel > ( x ) ;
70+ CreateSteamWebResponseMap < MatchHistoryResultContainer , MatchHistoryModel > ( x ) ;
71+ CreateSteamWebResponseMap < MatchHistoryBySequenceNumberResultContainer , IReadOnlyCollection < MatchHistoryMatchModel > > ( x ) ;
72+ CreateSteamWebResponseMap < TeamInfoResultContainer , IReadOnlyCollection < TeamInfoModel > > ( x ) ;
73+ CreateSteamWebResponseMap < EconItemResultContainer , IReadOnlyCollection < EconItemResultModel > > ( x ) ;
74+ CreateSteamWebResponseMap < SchemaResultContainer , IReadOnlyCollection < Steam . Models . DOTA2 . SchemaModel > > ( x ) ;
75+ CreateSteamWebResponseMap < SchemaUrlResultContainer , IReadOnlyCollection < string > > ( x ) ;
76+ CreateSteamWebResponseMap < StoreMetaDataResultContainer , IReadOnlyCollection < StoreMetaDataModel > > ( x ) ;
77+ CreateSteamWebResponseMap < StoreStatusResultContainer , IReadOnlyCollection < uint > > ( x ) ;
78+ CreateSteamWebResponseMap < TradeHistoryResultContainer , Steam . Models . SteamEconomy . TradeHistoryModel > ( x ) ;
79+ CreateSteamWebResponseMap < TradeOffersResultContainer , Steam . Models . SteamEconomy . TradeOffersResultModel > ( x ) ;
80+ CreateSteamWebResponseMap < TradeOfferResultContainer , Steam . Models . SteamEconomy . TradeOfferResultModel > ( x ) ;
81+ CreateSteamWebResponseMap < GameClientResultContainer , GameClientResultModel > ( x ) ;
82+ CreateSteamWebResponseMap < PlayingSharedGameResultContainer , ulong ? > ( x ) ;
83+ CreateSteamWebResponseMap < CommunityBadgeProgressResultContainer , IReadOnlyCollection < BadgeQuestModel > > ( x ) ;
84+ CreateSteamWebResponseMap < BadgesResultContainer , BadgesResultModel > ( x ) ;
85+ CreateSteamWebResponseMap < SteamLevelResultContainer , uint ? > ( x ) ;
86+ CreateSteamWebResponseMap < OwnedGamesResultContainer , OwnedGamesResultContainer > ( x ) ;
87+ CreateSteamWebResponseMap < RecentlyPlayedGameResultContainer , RecentlyPlayedGamesResultModel > ( x ) ;
88+ CreateSteamWebResponseMap < SteamAppListResultContainer , IReadOnlyCollection < SteamAppModel > > ( x ) ;
89+ CreateSteamWebResponseMap < SteamAppUpToDateCheckResultContainer , SteamAppUpToDateCheckModel > ( x ) ;
90+ CreateSteamWebResponseMap < AssetClassInfoResultContainer , AssetClassInfoResultModel > ( x ) ;
91+ CreateSteamWebResponseMap < AssetPriceResultContainer , AssetPriceResultModel > ( x ) ;
92+ CreateSteamWebResponseMap < SteamNewsResultContainer , SteamNewsResultModel > ( x ) ;
93+ CreateSteamWebResponseMap < UGCFileDetailsResultContainer , UGCFileDetailsModel > ( x ) ;
94+ CreateSteamWebResponseMap < PlayerSummaryResultContainer , PlayerSummaryModel > ( x ) ;
95+ CreateSteamWebResponseMap < PlayerSummaryResultContainer , IReadOnlyCollection < PlayerSummaryModel > > ( x ) ;
96+ CreateSteamWebResponseMap < FriendsListResultContainer , IReadOnlyCollection < FriendModel > > ( x ) ;
97+ CreateSteamWebResponseMap < PlayerBansContainer , IReadOnlyCollection < PlayerBansModel > > ( x ) ;
98+ CreateSteamWebResponseMap < UserGroupListResultContainer , IReadOnlyCollection < ulong > > ( x ) ;
99+ CreateSteamWebResponseMap < ResolveVanityUrlResultContainer , ulong > ( x ) ;
100+ CreateSteamWebResponseMap < GlobalAchievementPercentagesResultContainer , IReadOnlyCollection < GlobalAchievementPercentageModel > > ( x ) ;
101+ CreateSteamWebResponseMap < GlobalStatsForGameResultContainer , IReadOnlyCollection < GlobalStatModel > > ( x ) ;
102+ CreateSteamWebResponseMap < CurrentPlayersResultContainer , uint > ( x ) ;
103+ CreateSteamWebResponseMap < PlayerAchievementResultContainer , PlayerAchievementResultModel > ( x ) ;
104+ CreateSteamWebResponseMap < SchemaForGameResultContainer , SchemaForGameResultModel > ( x ) ;
105+ CreateSteamWebResponseMap < UserStatsForGameResultContainer , UserStatsForGameResultModel > ( x ) ;
106+ CreateSteamWebResponseMap < SteamServerInfo , SteamServerInfoModel > ( x ) ;
107+ CreateSteamWebResponseMap < SteamApiListContainer , IReadOnlyCollection < SteamInterfaceModel > > ( x ) ;
108+ CreateSteamWebResponseMap < GoldenWrenchResultContainer , IReadOnlyCollection < GoldenWrenchModel > > ( x ) ;
53109
54110 #region Endpoint: DOTA2Econ
55111
56112 x . CreateMap < Hero , HeroModel > ( ) ;
57- x . CreateMap < HeroResultContainer , IReadOnlyCollection < HeroModel > > ( ) . ConstructUsing (
113+ x . CreateMap < HeroResultContainer , IReadOnlyCollection < HeroModel > > ( ) . ConvertUsing (
58114 src => Mapper . Map < IList < Hero > , IReadOnlyCollection < HeroModel > > ( src . Result . Heroes )
59115 ) ;
60116
0 commit comments