/// <summary> /// This method is used to retrieve the public settings, such as Site Name. /// It accepts a date as the first and only parameter which causes the results to be an object that /// contains the updated and removed settings after the provided time. /// </summary> /// <returns>The time after which settings should be returned.</returns> /// <param name="since">Since.</param> public async Task <CollectionDiff <KeyValuePair <string, object> > > GetPublicSettingsSince(DateTime since) { var res = await _meteor.CallWithResult("public-settings/get", new object[] { new Dictionary <string, object>() { { "$date", TypeUtils.DateTimeToTimestamp(since) } } }); CollectionDiff <KeyValuePair <string, object> > output = new CollectionDiff <KeyValuePair <string, object> >(); if (res == null) { return(output); } var result = res["result"]; if (result == null) { return(output); } var updates = result["update"] != null ? (result as JObject)["update"] as JArray : null; var additions = result["add"] != null ? (result as JObject)["add"] as JArray : null; var removes = result["remove"] != null ? (result as JObject)["remove"] as JArray : null; if (additions != null) { foreach (var channelTok in additions) { output.Added.Add(TypeUtils.ParseKeyValuePair(channelTok as JObject)); } } if (updates != null) { foreach (var channelTok in updates) { output.Updated.Add(TypeUtils.ParseKeyValuePair(channelTok as JObject)); } } if (removes != null) { foreach (var channelTok in removes) { output.Removed.Add(TypeUtils.ParseKeyValuePair(channelTok as JObject)); } } return(output); }
private CollectionDiff <Subscription> ProcessSubscriptions(JObject obj) { CollectionDiff <Subscription> subscriptions = new CollectionDiff <Subscription>(); var result = obj["result"]; if (result == null) { return(subscriptions); } var updates = result["update"] != null ? (result as JObject)["update"] as JArray : null; var additions = result["add"] != null ? (result as JObject)["add"] as JArray : null; var removes = result["remove"] != null ? (result as JObject)["remove"] as JArray : null; if (additions != null) { foreach (var channelTok in additions) { subscriptions.Added.Add(Subscription.Parse(channelTok as JObject)); } } if (updates != null) { foreach (var channelTok in updates) { subscriptions.Updated.Add(Subscription.Parse(channelTok as JObject)); } } if (removes != null) { foreach (var channelTok in removes) { subscriptions.Removed.Add(Subscription.Parse(channelTok as JObject)); } } return(subscriptions); }
private CollectionDiff <Room> ProcessRooms(JObject obj) { CollectionDiff <Room> rooms = new CollectionDiff <Room>(); var result = obj["result"]; if (result == null) { return(rooms); } var updates = result["update"] != null ? (result as JObject)["update"] as JArray : null; var additions = result["add"] != null ? (result as JObject)["add"] as JArray : null; var removes = result["remove"] != null ? (result as JObject)["remove"] as JArray : null; if (additions != null) { foreach (var channelTok in additions) { rooms.Added.Add(Room.Parse(_meteor, channelTok as JObject)); } } if (updates != null) { foreach (var channelTok in updates) { rooms.Updated.Add(Room.Parse(_meteor, channelTok as JObject)); } } if (removes != null) { foreach (var channelTok in removes) { rooms.Removed.Add(Room.Parse(_meteor, channelTok as JObject)); } } return(rooms); }