コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 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));
 }
コード例 #5
0
 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));
 }
コード例 #6
0
 public virtual async Task <bool> GetSettingChangeResponseAsync(SettingMethods method, CancellationToken?cancelToken = null)
 {
     return(await SubsonicRequest.SettingChangeRequestAsync(method, cancelToken));
 }