public virtual async Task <TResponse> GetResponseAsync <TResponse>(Methods method, Version methodApiVersion, SubsonicParameters parameters = null, CancellationToken?cancelToken = null) { ValidateApiVersion(method, methodApiVersion); var result = default(TResponse); var response = await SubsonicRequest.RequestAsync(method, methodApiVersion, parameters, cancelToken); switch (response.Status) { case ResponseStatus.Ok: result = (TResponse)response.Item; break; case ResponseStatus.Failed: if (response.ItemElementName == ItemChoiceType.Error) { throw new SubsonicErrorException(string.Format(CultureInfo.CurrentCulture, "Error occurred in {0}", method.GetXmlEnumAttribute()), response.Item as Error); } throw new SubsonicApiException(string.Format(CultureInfo.CurrentCulture, "Unknown error occurred in {0}", method.GetXmlEnumAttribute())); } return(result); }
public virtual async Task <long> GetResponseAsync(string path, bool pathOverride, Methods method, Version methodApiVersion, SubsonicParameters parameters = null, CancellationToken?cancelToken = null) { ValidateApiVersion(method, methodApiVersion); return(await SubsonicRequest.RequestAsync(path, pathOverride, method, methodApiVersion, parameters, cancelToken)); }
public virtual async Task GetNoResponseAsync(Methods method, Version methodApiVersion, SubsonicParameters parameters = null, CancellationToken?cancelToken = null) { ValidateApiVersion(method, methodApiVersion); await SubsonicRequest.RequestWithoutResponseAsync(method, methodApiVersion, parameters, cancelToken); }
public virtual async Task <IImageFormat <T> > GetImageResponseAsync(Methods method, Version methodApiVersion, SubsonicParameters parameters = null, CancellationToken?cancelToken = null) { ValidateApiVersion(method, methodApiVersion); return(await SubsonicRequest.ImageRequestAsync(method, methodApiVersion, parameters, cancelToken)); }
public virtual async Task <long> GetContentLengthAsync(Methods method, Version methodApiVersion, SubsonicParameters parameters = null, CancellationToken?cancelToken = null) { ValidateApiVersion(method, methodApiVersion); return(await SubsonicRequest.ContentLengthRequestAsync(method, methodApiVersion, parameters, cancelToken)); }
public virtual async Task <bool> GetSettingChangeResponseAsync(SettingMethods method, CancellationToken?cancelToken = null) { return(await SubsonicRequest.SettingChangeRequestAsync(method, cancelToken)); }