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;
            }
        }