Esempio n. 1
0
        // 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);
        }