/// <summary> /// Converts the specified <see cref="IRestResponse"/> into a strongly typed REST API response. /// </summary> /// <typeparam name="T">The type to cast the response to. See remarks.</typeparam> /// <param name="this">The <see cref="IRestResponse"/> which will be strongly typed.</param> /// <returns> /// A strongly typed REST API response. /// </returns> /// <remarks> /// This method will attempt to deserialize the response data using either <see cref="DefaultXmlSerialization"/> /// or <see cref="DefaultJsonSerialization"/>. The type used is determined by <see cref="GetDataFormat(IRestResponse)"/>. /// </remarks> public static IRestResponse <T> ToIRestResponse <T>(this IRestResponse @this) { IRestResponse <T> result = null; if (@this != null) { result = @this.toAsyncResponse <T>(); var format = @this.GetDataFormat(); if (@this.Content != null) { if (format == DataFormat.Json) { result.Data = JsonDeserializer.Deserialize <T>(@this.Content); } else if (format == DataFormat.Xml) { result.Data = XmlDeserializer.Deserialize <T>(@this.Content); } } } return(result); }