public static UserCategoryStatistic ParseJson(JToken json)
        {
            var uvs = new UserCategoryStatistic();

            string bh = Json.TryGetJsonProperty(json, "venueCount");

            if (bh != null)
            {
                int i;
                if (int.TryParse(bh, out i))
                {
                    uvs.VenueCount = i;
                }
            }

            var v = json["category"];

            if (v != null)
            {
                var cat = Category.ParseJson(v);
                if (cat != null)
                {
                    uvs.Category = cat;
                }
            }

            return(uvs);
        }
        public static UserCategoryStatistic ParseJson(JToken json)
        {
            var uvs = new UserCategoryStatistic();

            string bh = Json.TryGetJsonProperty(json, "venueCount");
            if (bh != null)
            {
                int i;
                if (int.TryParse(bh, out i))
                {
                    uvs.VenueCount = i;
                }
            }

            var v = json["category"];
            if (v != null)
            {
                var cat = Category.ParseJson(v);
                if (cat != null)
                {
                    uvs.Category = cat;
                }
            }

            return uvs;
        }
            protected override object DeserializeCore(JObject json, Type objectType, LoadContext context)
            {
                try
                {
                    var b = new UserVenueStats(context);

                    var venues = json["venues"];
                    if (venues != null)
                    {
                        List <UserVenueStatistic> list = new List <UserVenueStatistic>();
                        foreach (var ven in venues)
                        {
                            var v = UserVenueStatistic.ParseJson(ven);
                            if (v != null)
                            {
                                list.Add(v);
                            }
                        }

                        b.FavoriteVenues = list;
                    }

                    var categories = json["categories"];
                    if (categories != null)
                    {
                        List <UserCategoryStatistic> list = new List <UserCategoryStatistic>();
                        foreach (var cat in categories)
                        {
                            var c = UserCategoryStatistic.ParseJson(cat);
                            if (c != null)
                            {
                                list.Add(c);
                            }
                        }

                        b.FavoriteCategories = list;
                    }

                    b.IsLoadComplete = true;

                    return(b);
                }
                catch (Exception e)
                {
                    throw new UserIntendedException(
                              "There was a problem trying to read the venue stats.", e);
                }
            }