Skip to content

Commit 7f3f62f

Browse files
author
Justin
committed
Added GetItemIconPath back with test interface for Dota 2.
1 parent c67d5ac commit 7f3f62f

File tree

1 file changed

+34
-6
lines changed

1 file changed

+34
-6
lines changed

src/SteamWebAPI2/Interfaces/DOTA2Econ.cs

Lines changed: 34 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,20 @@ namespace SteamWebAPI2.Interfaces
1212
/// </summary>
1313
public class DOTA2Econ : IDOTA2Econ
1414
{
15-
private ISteamWebInterface steamWebInterface;
15+
private ISteamWebInterface dota2WebInterface;
16+
private ISteamWebInterface dota2TestWebInterface;
1617

1718
/// <summary>
1819
/// Default constructor established the Steam Web API key and initializes for subsequent method calls
1920
/// </summary>
2021
/// <param name="steamWebApiKey"></param>
2122
public DOTA2Econ(ISteamWebRequest steamWebRequest, ISteamWebInterface steamWebInterface = null)
2223
{
23-
this.steamWebInterface = steamWebInterface == null
24+
this.dota2WebInterface = steamWebInterface == null
2425
? new SteamWebInterface("IEconDOTA2_570", steamWebRequest)
2526
: steamWebInterface;
27+
28+
this.dota2TestWebInterface = new SteamWebInterface("IEconDOTA2_205790", steamWebRequest);
2629
}
2730

2831
/// <summary>
@@ -36,7 +39,7 @@ public async Task<ISteamWebResponse<IReadOnlyCollection<GameItemModel>>> GetGame
3639

3740
parameters.AddIfHasValue(language, "language");
3841

39-
var steamWebResponse = await steamWebInterface.GetAsync<GameItemResultContainer>("GetGameItems", 1, parameters);
42+
var steamWebResponse = await dota2WebInterface.GetAsync<GameItemResultContainer>("GetGameItems", 1, parameters);
4043

4144
var steamWebResponseModel = AutoMapperConfiguration.Mapper.Map<ISteamWebResponse<GameItemResultContainer>, ISteamWebResponse<IReadOnlyCollection<GameItemModel>>>(steamWebResponse);
4245

@@ -58,7 +61,7 @@ public async Task<ISteamWebResponse<IReadOnlyCollection<HeroModel>>> GetHeroesAs
5861
parameters.AddIfHasValue(language, "language");
5962
parameters.AddIfHasValue(itemizedOnlyValue, "itemizedonly");
6063

61-
var steamWebResponse = await steamWebInterface.GetAsync<HeroResultContainer>("GetHeroes", 1, parameters);
64+
var steamWebResponse = await dota2WebInterface.GetAsync<HeroResultContainer>("GetHeroes", 1, parameters);
6265

6366
var steamWebResponseModel = AutoMapperConfiguration.Mapper.Map<ISteamWebResponse<HeroResultContainer>, ISteamWebResponse<IReadOnlyCollection<HeroModel>>>(steamWebResponse);
6467

@@ -76,7 +79,7 @@ public async Task<ISteamWebResponse<IReadOnlyCollection<RarityModel>>> GetRariti
7679

7780
parameters.AddIfHasValue(language, "language");
7881

79-
var steamWebResponse = await steamWebInterface.GetAsync<RarityResultContainer>("GetRarities", 1, parameters);
82+
var steamWebResponse = await dota2WebInterface.GetAsync<RarityResultContainer>("GetRarities", 1, parameters);
8083

8184
var steamWebResponseModel = AutoMapperConfiguration.Mapper.Map<ISteamWebResponse<RarityResultContainer>, ISteamWebResponse<IReadOnlyCollection<RarityModel>>>(steamWebResponse);
8285

@@ -94,11 +97,36 @@ public async Task<ISteamWebResponse<uint>> GetTournamentPrizePoolAsync(uint? lea
9497

9598
parameters.AddIfHasValue(leagueId, "leagueid");
9699

97-
var steamWebResponse = await steamWebInterface.GetAsync<PrizePoolResultContainer>("GetTournamentPrizePool", 1, parameters);
100+
var steamWebResponse = await dota2WebInterface.GetAsync<PrizePoolResultContainer>("GetTournamentPrizePool", 1, parameters);
98101

99102
var steamWebResponseModel = AutoMapperConfiguration.Mapper.Map<ISteamWebResponse<PrizePoolResultContainer>, ISteamWebResponse<uint>>(steamWebResponse);
100103

101104
return steamWebResponseModel;
102105
}
106+
107+
/// <summary>
108+
/// It is important to note that the "items" this method is referring to are not the in game items. These are actually cosmetic items found in the DOTA 2 store and workshop.
109+
/// </summary>
110+
/// <param name="iconName"></param>
111+
/// <param name="iconType"></param>
112+
/// <returns></returns>
113+
public async Task<ISteamWebResponse<string>> GetItemIconPathAsync(string iconName, string iconType = "")
114+
{
115+
if (string.IsNullOrEmpty(iconName))
116+
{
117+
throw new ArgumentNullException("iconName");
118+
}
119+
120+
List<SteamWebRequestParameter> parameters = new List<SteamWebRequestParameter>();
121+
122+
parameters.AddIfHasValue(iconName, "iconname");
123+
parameters.AddIfHasValue(iconType, "icontype");
124+
125+
var steamWebResponse = await dota2TestWebInterface.GetAsync<ItemIconPathResultContainer>("GetItemIconPath", 1, parameters);
126+
127+
var steamWebResponseModel = AutoMapperConfiguration.Mapper.Map<ISteamWebResponse<ItemIconPathResultContainer>, ISteamWebResponse<string>>(steamWebResponse);
128+
129+
return steamWebResponseModel;
130+
}
103131
}
104132
}

0 commit comments

Comments
 (0)