Example #1
0
        public async Task <IEnumerable <Activity> > GetActivities(IEnumerable <string> ids = null, IEnumerable <ForeignIDTime> foreignIDTimes = null)
        {
            if (ids == null && foreignIDTimes == null)
            {
                throw new ArgumentException("one of the parameters ids or foreignIdTimes must be provided and not null", "ids, foreignIDTimes");
            }
            if (ids != null && foreignIDTimes != null)
            {
                throw new ArgumentException("at most one of the parameters ids or foreignIdTimes must be provided", "ids, foreignIDTimes");
            }

            var request = _client.BuildJWTAppRequest("activities/", HttpMethod.GET);

            if (ids != null)
            {
                request.AddQueryParameter("ids", string.Join(",", ids));
            }

            if (foreignIDTimes != null)
            {
                request.AddQueryParameter("foreign_ids", string.Join(",", foreignIDTimes.Select(f => f.ForeignID)));
                request.AddQueryParameter("timestamps", string.Join(",", foreignIDTimes.Select(f =>
                                                                                               f.Time.ToString("s", System.Globalization.CultureInfo.InvariantCulture))));
            }

            var response = await _client.MakeRequest(request);

            if (response.StatusCode == System.Net.HttpStatusCode.OK)
            {
                return(Activity.GetResults(response.Content));
            }

            throw StreamException.FromResponse(response);
        }