Skip to content

Commit ca2ec9e

Browse files
author
babelshift
committed
Improved conversion between data models for GetHeroes and GetGameItems methods.
Fixed a regression related to parameters introduced in a recent commit. Added default "en_us" language to GetHeroes, GetGameItems, and GetLeagueListing methods.
1 parent 1dae8fc commit ca2ec9e

10 files changed

Lines changed: 27 additions & 29 deletions

File tree

SteamWebAPI2.Net451/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
<packages>
33
<package id="AutoMapper" version="4.2.1" targetFramework="net451" />
44
<package id="Newtonsoft.Json" version="8.0.3" targetFramework="net451" />
5-
<package id="Steam.Models" version="1.0.0.28" targetFramework="net451" />
5+
<package id="Steam.Models" version="1.0.0.29" targetFramework="net451" />
66
</packages>

SteamWebAPI2.Net452/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
<packages>
33
<package id="AutoMapper" version="4.2.1" targetFramework="net452" />
44
<package id="Newtonsoft.Json" version="8.0.3" targetFramework="net452" />
5-
<package id="Steam.Models" version="1.0.0.28" targetFramework="net452" />
5+
<package id="Steam.Models" version="1.0.0.29" targetFramework="net452" />
66
</packages>

SteamWebAPI2.Portable/project.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"Microsoft.NETCore": "5.0.0",
99
"Microsoft.NETCore.Portable.Compatibility": "1.0.0",
1010
"Newtonsoft.Json": "8.0.3",
11-
"Steam.Models": "1.0.0.28"
11+
"Steam.Models": "1.0.0.29"
1212
},
1313
"frameworks": {
1414
"dotnet": {

SteamWebAPI2/AutoMapperConfiguration.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ public static void Initialize()
3333
{
3434
config = new MapperConfiguration(x =>
3535
{
36+
x.CreateMap<Hero, HeroModel>();
37+
x.CreateMap<GameItem, GameItemModel>();
38+
3639
x.CreateMap<SchemaResult, SchemaModel>();
3740
//x.CreateMap<SchemaAdditionalHiddenBodygroups, SchemaAdditionalHiddenBodygroupsModel>();
3841
//x.CreateMap<SchemaAttributeControlledAttachedParticle, SchemaAttributeControlledAttachedParticleModel>();

SteamWebAPI2/Interfaces/DOTA2Econ.cs

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -27,25 +27,15 @@ public DOTA2Econ(string steamWebApiKey)
2727
/// </summary>
2828
/// <param name="language"></param>
2929
/// <returns></returns>
30-
public async Task<IReadOnlyCollection<GameItemModel>> GetGameItemsAsync(string language = "")
30+
public async Task<IReadOnlyCollection<GameItemModel>> GetGameItemsAsync(string language = "en_us")
3131
{
3232
List<SteamWebRequestParameter> parameters = new List<SteamWebRequestParameter>();
3333

3434
parameters.AddIfHasValue(language, "language");
3535

36-
var gameItems = await CallMethodAsync<GameItemResultContainer>("GetGameItems", 1);
36+
var gameItems = await CallMethodAsync<GameItemResultContainer>("GetGameItems", 1, parameters);
3737

38-
var gameItemModels = gameItems.Result.Items.Select(x => new GameItemModel()
39-
{
40-
Id = x.Id,
41-
Cost = x.Cost,
42-
IsAvailableAtSecretShop = x.SecretShop == 1 ? true : false,
43-
IsAvailableAtSideShop = x.SideShop == 1 ? true : false,
44-
IsRecipe = x.Recipe == 1 ? true : false,
45-
Name = x.Name
46-
})
47-
.ToList()
48-
.AsReadOnly();
38+
var gameItemModels = AutoMapperConfiguration.Mapper.Map<IList<GameItem>, IReadOnlyCollection<GameItemModel>>(gameItems.Result.Items);
4939

5040
return gameItemModels;
5141
}
@@ -105,7 +95,7 @@ private static int GetCorrectedId(int id, string name)
10595
/// <param name="language"></param>
10696
/// <param name="itemizedOnly"></param>
10797
/// <returns></returns>
108-
public async Task<IReadOnlyCollection<HeroModel>> GetHeroesAsync(string language = "", bool itemizedOnly = false)
98+
public async Task<IReadOnlyCollection<HeroModel>> GetHeroesAsync(string language = "en_us", bool itemizedOnly = false)
10999
{
110100
List<SteamWebRequestParameter> parameters = new List<SteamWebRequestParameter>();
111101

@@ -116,13 +106,7 @@ public async Task<IReadOnlyCollection<HeroModel>> GetHeroesAsync(string language
116106

117107
var heroes = await CallMethodAsync<HeroResultContainer>("GetHeroes", 1, parameters);
118108

119-
var heroModels = heroes.Result.Heroes.Select(x => new HeroModel()
120-
{
121-
Id = x.Id,
122-
Name = x.Name
123-
})
124-
.ToList()
125-
.AsReadOnly();
109+
var heroModels = AutoMapperConfiguration.Mapper.Map<IList<Hero>, IReadOnlyCollection<HeroModel>>(heroes.Result.Heroes);
126110

127111
return heroModels;
128112
}

SteamWebAPI2/Interfaces/DOTA2Match.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,13 @@ public DOTA2Match(string steamWebApiKey)
1616
{
1717
}
1818

19-
public async Task<IReadOnlyCollection<LeagueModel>> GetLeagueListingAsync()
19+
public async Task<IReadOnlyCollection<LeagueModel>> GetLeagueListingAsync(string language = "en_us")
2020
{
21-
var leagueListing = await CallMethodAsync<LeagueResultContainer>("GetLeagueListing", 1);
21+
List<SteamWebRequestParameter> parameters = new List<SteamWebRequestParameter>();
22+
23+
parameters.AddIfHasValue(language, "language");
24+
25+
var leagueListing = await CallMethodAsync<LeagueResultContainer>("GetLeagueListing", 1, parameters);
2226

2327
var leagueModels = leagueListing.Result.Leagues.Select(x => new LeagueModel()
2428
{

SteamWebAPI2/Interfaces/IDOTA2Match.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace SteamWebAPI2.Interfaces
77
{
88
public interface IDOTA2Match
99
{
10-
Task<IReadOnlyCollection<LeagueModel>> GetLeagueListingAsync();
10+
Task<IReadOnlyCollection<LeagueModel>> GetLeagueListingAsync(string language);
1111
Task<IReadOnlyCollection<LiveLeagueGameModel>> GetLiveLeagueGamesAsync(int? leagueId = default(int?), long? matchId = default(long?));
1212
Task<MatchDetailModel> GetMatchDetailsAsync(long matchId);
1313
Task<MatchHistoryModel> GetMatchHistoryAsync(int? heroId = default(int?), int? gameMode = default(int?), int? skill = default(int?), string minPlayers = "", string accountId = "", string leagueId = "", long? startAtMatchId = default(long?), string matchesRequested = "", string tournamentGamesOnly = "");

SteamWebAPI2/Models/DOTA2/GameItemResultContainer.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,13 @@ internal class GameItem
1616
public int SideShop { get; set; }
1717

1818
public int Recipe { get; set; }
19+
20+
[JsonProperty(PropertyName = "localized_name")]
21+
public string LocalizedName { get; set; }
22+
23+
public bool IsAvailableAtSecretShop { get { return SecretShop == 1 ? true : false; } }
24+
public bool IsAvailableAtSideShop { get { return SideShop == 1 ? true : false; } }
25+
public bool IsRecipe { get { return Recipe == 1 ? true : false; } }
1926
}
2027

2128
internal class GameItemResult

SteamWebAPI2/SteamWebInterface.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ internal async Task<T> CallMethodAsync<T>(string methodName, int version, IList<
7171
Debug.Assert(!String.IsNullOrEmpty(methodName));
7272
Debug.Assert(version > 0);
7373

74-
return await steamWebRequest.SendWebRequestAsync<T>(interfaceName, methodName, version);
74+
return await steamWebRequest.SendWebRequestAsync<T>(interfaceName, methodName, version, parameters);
7575
}
7676
}
7777
}

SteamWebAPI2/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
<packages>
33
<package id="AutoMapper" version="4.2.1" targetFramework="net46" />
44
<package id="Newtonsoft.Json" version="8.0.3" targetFramework="net46" />
5-
<package id="Steam.Models" version="1.0.0.28" targetFramework="net46" />
5+
<package id="Steam.Models" version="1.0.0.29" targetFramework="net46" />
66
</packages>

0 commit comments

Comments
 (0)