public Business.Character Parse(Business.Character character, bool forceParse) { WowExplorer explorer = new WowExplorer(Region.US); try { WowDotNetAPI.Models.Character downloadedCharacter = explorer.GetCharacter(Region.US, character.Server, character.Name, CharacterOptions.GetAchievements | CharacterOptions.GetGuild); if (downloadedCharacter == null) { return null; } character.Class = downloadedCharacter.Class.ToString(); character.CurrentPoints = downloadedCharacter.AchievementPoints; character.LastParseDate = DateTime.UtcNow; character.Level = downloadedCharacter.Level; character.Race = downloadedCharacter.Race.ToString(); character.Thumbnail = downloadedCharacter.Thumbnail; character.Guild = downloadedCharacter.Guild.Name; if (downloadedCharacter.Race == WowDotNetAPI.Models.CharacterRace.BLOOD_ELF || downloadedCharacter.Race == WowDotNetAPI.Models.CharacterRace.GOBLIN || downloadedCharacter.Race == WowDotNetAPI.Models.CharacterRace.ORC || downloadedCharacter.Race == WowDotNetAPI.Models.CharacterRace.PANDAREN_HORDE || downloadedCharacter.Race == WowDotNetAPI.Models.CharacterRace.TAUREN || downloadedCharacter.Race == WowDotNetAPI.Models.CharacterRace.TROLL || downloadedCharacter.Race == WowDotNetAPI.Models.CharacterRace.UNDEAD) { character.Side = Achievement.HordeOnly; } else { character.Side = Achievement.AllianceOnly; } for (int i = 0; i < downloadedCharacter.Achievements.AchievementsCompleted.Count(); i++) { int blizzardId = downloadedCharacter.Achievements.AchievementsCompleted.ElementAt(i); DateTime completedOn = ConvertUnixEpochTime(downloadedCharacter.Achievements.AchievementsCompletedTimestamp.ElementAt(i)); Achievement achievement = _achievementRepository.FindAchivementByBlizzardId(blizzardId); if (achievement != null && !character.HasAchieved(achievement)) { character.AddNewAchivement(completedOn, achievement); } } for (int i = 0; i < downloadedCharacter.Achievements.Criteria return character; } catch (WebException we) { HttpWebResponse webResponse = we.Response as HttpWebResponse; if (webResponse != null && webResponse.StatusCode == HttpStatusCode.NotFound) { return null; } throw we; } }