// TODO: refactor this. It's a duplicate from TmdbMedia and TmdbPerson, and TmdbSeason public KeyValuePair <string, TmdbChangeAction[]>[] GetChangesGroupedByKey(int minPage, int maxPage, DateTime startDate = default(DateTime), DateTime endDate = default(DateTime)) { var args = new JsonObject(); if (default(DateTime) != startDate) { args.Add("start_date", Tmdb.DateTimeToDate(startDate)); } if (default(DateTime) != endDate) { args.Add("end_date", Tmdb.DateTimeToDate(endDate)); } var l = Tmdb.CollapsePagedJson(Tmdb.InvokeFlatPaged(string.Concat("/", string.Join("/", PathIdentity), "/changes"), minPage, maxPage, args)); if (null != l) { var result = new KeyValuePair <string, TmdbChangeAction[]> [l.Count]; for (var i = 0; i < result.Length; i++) { var ci = l[i] as IDictionary <string, object>; if (null != ci) { string key = null; TmdbChangeAction[] value; object o; if (ci.TryGetValue("key", out o)) { key = o as string; } if (ci.TryGetValue("items", out o)) { var ll = o as IList <object>; value = JsonArray.ToArray(ll, (dd) => new TmdbChangeAction((IDictionary <string, object>)dd)); result[i] = new KeyValuePair <string, TmdbChangeAction[]>(key, value); } } } return(result); } return(null); }