コード例 #1
0
        public async Task ActivityPartialUpdate(string id = null, ForeignIDTime foreignIDTime = null, GenericData set = null, IEnumerable <string> unset = null)
        {
            if (id == null && foreignIDTime == null)
            {
                throw new ArgumentException("one the parameters ids or foreignIdTimes must be provided and not null", "ids, foreignIDTimes");
            }
            if (id != null && foreignIDTime != null)
            {
                throw new ArgumentException("at most one of the parameters ids or foreignIdTimes must be provided", "ids, foreignIDTimes");
            }

            var request = this.BuildJWTAppRequest("activity/", HttpMethod.POST);

            var requestJSON = new JObject();

            if (id != null)
            {
                requestJSON.Add(new JProperty("id", id));
            }
            else
            {
                requestJSON.Add(new JProperty("foreign_id", foreignIDTime.ForeignID));
                requestJSON.Add(new JProperty("time", foreignIDTime.Time.ToString("s", System.Globalization.CultureInfo.InvariantCulture)));
            }

            var setObj = new JObject();

            if (set != null)
            {
                set.AddToJObject(ref setObj);
            }
            requestJSON.Add("set", setObj);

            requestJSON.Add(new JProperty("unset", unset != null ? unset : new string[] { }));

            request.SetJsonBody(requestJSON.ToString());
            var response = await this.MakeRequest(request);

            if (response.StatusCode != System.Net.HttpStatusCode.Created)
            {
                throw StreamException.FromResponse(response);
            }
        }
コード例 #2
0
        public async Task ActivityPartialUpdate(string id = null, ForeignIDTime foreignIDTime = null, GenericData set = null, IEnumerable <string> unset = null)
        {
            if (id == null && foreignIDTime == null)
            {
                throw new ArgumentException("one the parameters ids or foreignIdTimes must be provided and not null", "ids, foreignIDTimes");
            }
            if (id != null && foreignIDTime != null)
            {
                throw new ArgumentException("at most one of the parameters ids or foreignIdTimes must be provided", "ids, foreignIDTimes");
            }

            var update = new ActivityPartialUpdateRequestObject
            {
                ID            = id,
                ForeignIDTime = foreignIDTime,
                Set           = set,
                Unset         = unset,
            };

            await this.Batch.ActivitiesPartialUpdate(new ActivityPartialUpdateRequestObject[] { update });
        }
コード例 #3
0
        public async Task <UpdateToTargetsResponse> UpdateActivityToTargets(ForeignIDTime foreignIDTime,
                                                                            IEnumerable <string> adds       = null,
                                                                            IEnumerable <string> newTargets = null,
                                                                            IEnumerable <string> removed    = null)
        {
            var payload = new Dictionary <string, object>()
            {
                { "foreign_id", foreignIDTime.ForeignID },
                { "time", foreignIDTime.Time.ToString("s", System.Globalization.CultureInfo.InvariantCulture) }
            };

            if (adds != null)
            {
                payload["added_targets"] = adds.ToList();
            }
            if (newTargets != null)
            {
                payload["new_targets"] = newTargets.ToList();
            }
            if (removed != null)
            {
                payload["removed_targets"] = removed.ToList();
            }

            var endpoint = string.Format("feed_targets/{0}/{1}/activity_to_targets/", this._feedSlug, this._userId);
            var request  = this._client.BuildJWTAppRequest(endpoint, HttpMethod.POST);

            request.SetJsonBody(JsonConvert.SerializeObject(payload));
            var response = await this._client.MakeRequest(request);

            if (response.StatusCode == System.Net.HttpStatusCode.Created)
            {
                return(UpdateToTargetsResponse.FromJson(response.Content));
            }

            throw StreamException.FromResponse(response);
        }