/// <summary> /// Registers the device for push notifications. /// </summary> /// <param name="deviceId">The device id.</param> /// <param name="uri">The URI.</param> /// <param name="sendTileUpdate">The send tile update.</param> /// <param name="sendToastUpdate">The send toast update.</param> /// <returns></returns> /// <exception cref="ArgumentNullException">deviceType /// or /// deviceId</exception> public Task RegisterDeviceAsync(string deviceId, string uri, bool?sendTileUpdate = null, bool?sendToastUpdate = null) { if (string.IsNullOrEmpty(deviceId)) { throw new ArgumentNullException("deviceId"); } var dict = new QueryStringDictionary { { "deviceid", deviceId }, { "url", uri }, { "devicetype", "WindowsPhone8" } }; if (sendTileUpdate.HasValue) { dict.Add("sendlivetile", sendTileUpdate.Value); } if (sendToastUpdate.HasValue) { dict.Add("sendtoast", sendToastUpdate.Value); } var url = GetApiUrl("PushNotification/Devices", dict); return(PostAsync <EmptyRequestResult>(url, new Dictionary <string, string>())); }
/// <summary> /// List of parameters for this request object. /// </summary> /// <returns></returns> protected virtual QueryStringDictionary GetParameterList() { var parameters = new QueryStringDictionary(); if (string.IsNullOrEmpty(this.Language)) { this.Language = "en-US"; } parameters.Add("language", this.Language); parameters.Add("format", this.Format.ToNullableString()); return(parameters); }
/// <summary> /// Reports playback progress to the server /// </summary> /// <param name="itemId">The item id.</param> /// <param name="userId">The user id.</param> /// <param name="positionTicks">The position ticks.</param> /// <param name="isPaused">if set to <c>true</c> [is paused].</param> /// <returns>Task{UserItemDataDto}.</returns> /// <exception cref="System.ArgumentNullException">itemId</exception> public void ReportPlaybackProgress(string itemId, string userId, long?positionTicks, bool isPaused, Action <bool> onResponse) { if (string.IsNullOrEmpty(itemId)) { throw new ArgumentNullException("itemId"); } if (string.IsNullOrEmpty(userId)) { throw new ArgumentNullException("userId"); } if (WebSocketConnection != null && WebSocketConnection.IsOpen) { WebSocketConnection.Send("PlaybackProgress", itemId + "|" + (positionTicks == null ? "" : positionTicks.Value.ToString(CultureInfo.InvariantCulture)) + "|" + isPaused.ToString().ToLower()); } var dict = new QueryStringDictionary(); dict.AddIfNotNull("positionTicks", positionTicks); dict.Add("isPaused", isPaused); var url = GetApiUrl("Users/" + userId + "/PlayingItems/" + itemId + "/Progress", dict); Post <EmptyRequestResult>(url, new Dictionary <string, string>(), x => onResponse(true), x => onResponse(false)); }
private string GetImageUrl(string baseUrl, ImageOptions options, QueryStringDictionary queryParams) { if (options == null) { throw new ArgumentNullException("options"); } if (queryParams == null) { throw new ArgumentNullException("queryParams"); } if (options.ImageIndex.HasValue) { baseUrl += "/" + options.ImageIndex.Value; } queryParams.AddIfNotNull("Width", options.Width); queryParams.AddIfNotNull("Height", options.Height); queryParams.AddIfNotNull("MaxWidth", options.MaxWidth); queryParams.AddIfNotNull("MaxHeight", options.MaxHeight); queryParams.AddIfNotNull("Quality", options.Quality ?? ImageQuality); queryParams.AddIfNotNull("Tag", options.Tag); queryParams.AddIfNotNull("CropWhitespace", options.CropWhitespace); queryParams.Add("EnableImageEnhancers", options.EnableImageEnhancers); return(GetApiUrl(baseUrl, queryParams)); }
/// <summary> /// Updates the device async. /// </summary> /// <param name="deviceId">The device id.</param> /// <param name="sendTileUpdate">The send tile update.</param> /// <param name="sendToastUpdate">The send toast update.</param> /// <returns></returns> /// <exception cref="ArgumentNullException">deviceId</exception> public Task UpdateDeviceAsync(string deviceId, bool?sendTileUpdate = null, bool?sendToastUpdate = null) { if (string.IsNullOrEmpty(deviceId)) { throw new ArgumentNullException("deviceId"); } var dict = new QueryStringDictionary(); if (sendTileUpdate.HasValue) { dict.Add("sendlivetile", sendTileUpdate.Value); } if (sendToastUpdate.HasValue) { dict.Add("sendtoast", sendToastUpdate.Value); } var url = GetApiUrl("PushNotification/Devices/" + deviceId, dict); return(PostAsync <EmptyRequestResult>(url, new Dictionary <string, string>())); }
protected override List<BaseItem> GetCachedChildren() { var parms = new QueryStringDictionary { { "userId", Kernel.CurrentUser.ApiId }, {"Limit", 200} }; parms.Add("Fields", MB3ApiRepository.StandardFields.Select(f => f.ToString())); var url = Kernel.ApiClient.GetApiUrl("Shows/Upcoming", parms); using (var stream = Kernel.ApiClient.GetSerializedStream(url)) { var result = Kernel.ApiClient.DeserializeFromStream<ItemsResult>(stream); OurChildren = result.Items.Select(i => Kernel.Instance.MB3ApiRepository.GetItem(i, i.Type)).Where(i => i != null).ToList(); return OurChildren; } }
/// <summary> /// Registers the device for push notifications. /// </summary> /// <param name="deviceId">The device id.</param> /// <param name="uri">The URI.</param> /// <param name="sendTileUpdate">The send tile update.</param> /// <param name="sendToastUpdate">The send toast update.</param> /// <returns></returns> /// <exception cref="ArgumentNullException">deviceType /// or /// deviceId</exception> public Task RegisterDeviceAsync(string deviceId, string uri, bool? sendTileUpdate = null, bool? sendToastUpdate = null) { if (string.IsNullOrEmpty(deviceId)) { throw new ArgumentNullException("deviceId"); } var dict = new QueryStringDictionary { {"deviceid", deviceId}, {"url", uri}, {"devicetype", "WindowsPhone8"} }; if (sendTileUpdate.HasValue) dict.Add("sendlivetile", sendTileUpdate.Value); if (sendToastUpdate.HasValue) dict.Add("sendtoast", sendToastUpdate.Value); var url = GetApiUrl("PushNotification/Devices", dict); return PostAsync<EmptyRequestResult>(url, new Dictionary<string, string>()); }
protected override List <BaseItem> GetCachedChildren() { var parms = new QueryStringDictionary { { "userId", Kernel.CurrentUser.ApiId }, { "Limit", 200 } }; parms.Add("Fields", MB3ApiRepository.StandardFields.Select(f => f.ToString())); var url = Kernel.ApiClient.GetApiUrl("Shows/Upcoming", parms); using (var stream = Kernel.ApiClient.GetSerializedStream(url)) { var result = Kernel.ApiClient.DeserializeFromStream <ItemsResult>(stream); OurChildren = result.Items.Select(i => Kernel.Instance.MB3ApiRepository.GetItem(i, i.Type)).Where(i => i != null).ToList(); return(OurChildren); } }
/// <summary> /// Converts this object's parameters to a query string dictionary. /// </summary> /// <param name="source"></param> /// <returns></returns> public static QueryStringDictionary ToDictionary(this object source) { var dictionary = new QueryStringDictionary(); var properties = source.GetType().GetRuntimeProperties(); foreach (var property in properties) { var key = property.Name.ToLower(); var value = property.GetValue(source, null); if (!string.IsNullOrEmpty(key) && value != null) { dictionary.Add(key, value); } } return(dictionary); }
/// <summary> /// Updates the device async. /// </summary> /// <param name="deviceId">The device id.</param> /// <param name="sendTileUpdate">The send tile update.</param> /// <param name="sendToastUpdate">The send toast update.</param> /// <returns></returns> /// <exception cref="ArgumentNullException">deviceId</exception> public Task UpdateDeviceAsync(string deviceId, bool? sendTileUpdate = null, bool? sendToastUpdate = null) { if (string.IsNullOrEmpty(deviceId)) { throw new ArgumentNullException("deviceId"); } var dict = new QueryStringDictionary(); if (sendTileUpdate.HasValue) dict.Add("sendlivetile", sendTileUpdate.Value); if (sendToastUpdate.HasValue) dict.Add("sendtoast", sendToastUpdate.Value); var url = GetApiUrl("PushNotification/Devices/" + deviceId, dict); return PostAsync<EmptyRequestResult>(url, new Dictionary<string, string>()); }