public void Move(object item, object category)
        {
            var ach  = (WowHeadAchievement)item;
            var zone = ((VisualCategory)category).Zone;

            // Remove the old one
            Zone zoneToRemoveFrom    = null;
            Ach  achievementToRemove = null;

            foreach (var sc in this.Achievements.supercats)
            {
                foreach (var c in sc.cats)
                {
                    foreach (var z in c.zones)
                    {
                        foreach (var a in z.achs)
                        {
                            if (a.id == ach.Achievement.id.ToString())
                            {
                                zoneToRemoveFrom    = z;
                                achievementToRemove = a;
                            }
                        }
                    }
                }
            }

            if (zoneToRemoveFrom != null)
            {
                zoneToRemoveFrom.achs.Remove(achievementToRemove);
            }
            else
            {
                throw new ApplicationException("Could not find zone to remove achievement from");
            }

            var achiev = new Ach()
            {
                id         = ach.Achievement.id.ToString(),
                icon       = ach.Achievement.icon,
                side       = FormatSide(ach.Achievement.factionId),
                points     = ach.Achievement.points,
                obtainable = false,
                criteria   = new Dictionary <string, string>()
            };

            zone.achs.Add(achiev);
        }
        public void Add(object item, object category)
        {
            var wowHeadAchievement = (WowHeadAchievement)item;
            var zone = ((VisualCategory)category).Zone;

            var ach = new Ach()
            {
                id         = wowHeadAchievement.Achievement.id.ToString(),
                icon       = wowHeadAchievement.Achievement.icon,
                side       = FormatSide(wowHeadAchievement.Achievement.factionId),
                points     = wowHeadAchievement.Achievement.points,
                obtainable = true,
                criteria   = new Dictionary <string, string>()
            };

            zone.achs.Add(ach);
        }