Skip to content

Commit

Permalink
Merge pull request #49 from Enixor/master
Browse files Browse the repository at this point in the history
Battlegroups
  • Loading branch information
briandek committed Jul 15, 2012
2 parents 4d1029b + a1a132d commit 376b6be
Show file tree
Hide file tree
Showing 10 changed files with 149 additions and 61 deletions.
4 changes: 4 additions & 0 deletions Explorers/Explorers.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@
<Compile Include="Models\AchievementReward.cs" />
<Compile Include="Models\AuctionFile.cs" />
<Compile Include="Models\AuctionFiles.cs" />
<Compile Include="Models\BattlegroupInfo.cs" />
<Compile Include="Models\BattlegroupData.cs" />
<Compile Include="Models\Item.cs" />
<Compile Include="Models\Auction.cs" />
<Compile Include="Models\AuctionHouseSide.cs" />
Expand All @@ -80,6 +82,8 @@
<Compile Include="Models\GuildRewardItemInfo.cs" />
<Compile Include="Models\GuildRewardsData.cs" />
<Compile Include="Models\ItemBonusStat.cs" />
<Compile Include="Models\ItemClassData.cs" />
<Compile Include="Models\ItemClassInfo.cs" />
<Compile Include="Models\ItemSocket.cs" />
<Compile Include="Models\ItemSocketInfo.cs" />
<Compile Include="Models\ItemSourceInfo.cs" />
Expand Down
9 changes: 7 additions & 2 deletions Explorers/IExplorer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,13 @@ public interface IExplorer
Guild GetGuild(Region region, string realm, string name, GuildOptions guildOptions);

AchievementInfo GetAchievement(int id);
AchievementData GetAchievements();
AchievementData GetGuildAchievements();

IEnumerable<AchievementList> GetAchievements();
IEnumerable<AchievementList> GetGuildAchievements();

IEnumerable<BattlegroupInfo> GetBattlegroups();

IEnumerable<ItemClassInfo> GetItemClasses();

IEnumerable<Realm> GetRealms();
IEnumerable<Realm> GetRealms(Region region);
Expand Down
1 change: 1 addition & 0 deletions Explorers/Models/AchievementData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

namespace WowDotNetAPI.Models
{
[DataContract]
public class AchievementData
{
[DataMember(Name = "achievements")]
Expand Down
12 changes: 12 additions & 0 deletions Explorers/Models/BattlegroupData.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using System.Collections.Generic;
using System.Runtime.Serialization;

namespace WowDotNetAPI.Models
{
[DataContract]
public class BattlegroupData
{
[DataMember(Name = "battlegroups")]
public IEnumerable<BattlegroupInfo> Battlegroups { get; set; }
}
}
14 changes: 14 additions & 0 deletions Explorers/Models/BattlegroupInfo.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System.Runtime.Serialization;

namespace WowDotNetAPI.Models
{
[DataContract]
public class BattlegroupInfo
{
[DataMember(Name = "name")]
public string Name { get; set; }

[DataMember(Name = "slug")]
public string SLUG { get; set; }
}
}
13 changes: 13 additions & 0 deletions Explorers/Models/ItemClassData.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
using System.Collections.Generic;
using System.Runtime.Serialization;

namespace WowDotNetAPI.Models
{
[DataContract]
public class ItemClassData
{
[DataMember(Name = "classes")]
public IEnumerable<ItemClassInfo> Classes { get; set; }
}

}
14 changes: 14 additions & 0 deletions Explorers/Models/ItemClassInfo.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System.Runtime.Serialization;

namespace WowDotNetAPI.Models
{
[DataContract]
public class ItemClassInfo
{
[DataMember(Name = "class")]
public int Class { get; set; }

[DataMember(Name = "name")]
public string Name { get; set; }
}
}
35 changes: 18 additions & 17 deletions Explorers/Utilities/DataUtility.cs
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WowDotNetAPI.Utilities
{
public static class DataUtility
{
public const string characterRacesPath = "/api/wow/data/character/races";
public const string characterClassesPath = "/api/wow/data/character/classes";
public const string guildRewardsPath = "/api/wow/data/guild/rewards";
public const string guildPerksPath = "/api/wow/data/guild/perks";
public const string itemsPath = "/api/wow/data/item/";

}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WowDotNetAPI.Utilities
{
public static class DataUtility
{
public const string characterRacesPath = "/api/wow/data/character/races";
public const string characterClassesPath = "/api/wow/data/character/classes";
public const string guildRewardsPath = "/api/wow/data/guild/rewards";
public const string guildPerksPath = "/api/wow/data/guild/perks";
public const string itemsPath = "/api/wow/data/item/";
public const string itemClassesPath = "/api/wow/data/item/classes";
public const string battlegroundPath = "/api/wow/data/battlegroups/";
}
}
69 changes: 36 additions & 33 deletions Explorers/Utilities/GuildUtility.cs
Original file line number Diff line number Diff line change
@@ -1,33 +1,36 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WowDotNetAPI.Utilities
{
public static class GuildUtility
{
public const string basePath = "/api/wow/guild/";
public const string rewardsPath = "/api/wow/data/guild/rewards";
public const string perksPath = "/api/wow/data/guild/perks";

public static string buildOptionalQuery(GuildOptions realmOptions)
{
string query = "&fields=";
List<string> tmp = new List<string>();

if ((realmOptions & GuildOptions.GetMembers) == GuildOptions.GetMembers)
tmp.Add("members");

if ((realmOptions & GuildOptions.GetAchievements) == GuildOptions.GetAchievements)
tmp.Add("achievements");

if (tmp.Count == 0) return string.Empty;

query += string.Join(",", tmp.ToArray());

return query;
}

}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WowDotNetAPI.Utilities
{
public static class GuildUtility
{
public const string basePath = "/api/wow/guild/";
public const string rewardsPath = "/api/wow/data/guild/rewards";
public const string perksPath = "/api/wow/data/guild/perks";

public static string buildOptionalQuery(GuildOptions realmOptions)
{
string query = "&fields=";
List<string> tmp = new List<string>();

if ((realmOptions & GuildOptions.GetMembers) == GuildOptions.GetMembers)
tmp.Add("members");

if ((realmOptions & GuildOptions.GetAchievements) == GuildOptions.GetAchievements)
tmp.Add("achievements");

if ((realmOptions & GuildOptions.GetNews) == GuildOptions.GetNews)
tmp.Add("news");

if (tmp.Count == 0) return string.Empty;

query += string.Join(",", tmp.ToArray());

return query;
}

}
}
39 changes: 30 additions & 9 deletions Explorers/WowExplorer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,8 @@ public enum GuildOptions
None = 0,
GetMembers = 1,
GetAchievements = 2,
GetEverything = GetMembers | GetAchievements
GetNews = 4,
GetEverything = GetMembers | GetAchievements | GetNews
}

public class WowExplorer : IExplorer
Expand Down Expand Up @@ -291,6 +292,15 @@ public Item GetItem(string id)
return item;
}

public IEnumerable<ItemClassInfo> GetItemClasses()
{
ItemClassData itemclassdata;

TryGetData<ItemClassData>(BaseAPIurl + DataUtility.itemClassesPath + GetLocaleQuery(), out itemclassdata);

return (itemclassdata != null) ? itemclassdata.Classes : null;
}

#endregion

#region CharacterRaceInfo
Expand Down Expand Up @@ -359,26 +369,37 @@ public AchievementInfo GetAchievement(int id)
return achievement;
}

public AchievementData GetAchievements()
public IEnumerable<AchievementList> GetAchievements()
{
AchievementData achievementdata;
AchievementData achievementData;

TryGetData<AchievementData>(BaseAPIurl + AchievementUtility.listPath + GetLocaleQuery(), out achievementdata);
TryGetData<AchievementData>(BaseAPIurl + AchievementUtility.listPath + GetLocaleQuery(), out achievementData);

return achievementdata;
return (achievementData != null) ? achievementData.Lists : null;
}

public AchievementData GetGuildAchievements()
public IEnumerable<AchievementList> GetGuildAchievements()
{
AchievementData achievementdata = null;
AchievementData achievementData;

TryGetData<AchievementData>(BaseAPIurl + AchievementUtility.guildPath + GetLocaleQuery(), out achievementdata);
TryGetData<AchievementData>(BaseAPIurl + AchievementUtility.guildPath + GetLocaleQuery(), out achievementData);

return achievementdata;
return (achievementData != null) ? achievementData.Lists : null;
}

#endregion

#region Battlegroups
public IEnumerable<BattlegroupInfo> GetBattlegroups()
{
BattlegroupData battlegroupData;

TryGetData<BattlegroupData>(BaseAPIurl + DataUtility.battlegroundPath + GetLocaleQuery(), out battlegroupData);

return (battlegroupData != null) ? battlegroupData.Battlegroups : null;
}
#endregion

private T GetData<T>(string url) where T : class
{
if (!string.IsNullOrEmpty(privateAuthKey) && !string.IsNullOrEmpty(publicAuthKey))
Expand Down

0 comments on commit 376b6be

Please sign in to comment.