Beispiel #1
0
        public async Task <bool> Call(TRequest req, IsRetryTask isRetryTask)
        {
            Request = req;
            while (true)
            {
                await Task.Delay(1000);

                if (!CrossConnectivity.Current.IsConnected)
                {
                    if (await isRetryTask(ApiErrorCode.ConnectionFailure))
                    {
                        continue;
                    }
                    return(false);
                }

                try
                {
                    var serializedItem = JsonConvert.SerializeObject(req);
                    var r = await ApiClient.Client.PostAsync(Path, new StringContent(serializedItem, Encoding.UTF8, "application/json"));

                    var json = await r.Content.ReadAsStringAsync();

                    Response = await Task.Run(() => JsonConvert.DeserializeObject <TResponse>(json));
                }
                catch
                {
                    if (await isRetryTask(ApiErrorCode.ConnectionFailure))
                    {
                        continue;
                    }
                    return(false);
                }

                break;
            }

            // 正常時true
            return(true);
        }
Beispiel #2
0
        public async Task <bool> Call(TRequest req, IsRetryTask isRetryTask)
        {
            Request = req;

            while (true)
            {
                await Task.Delay(1000);

                if (!CrossConnectivity.Current.IsConnected)
                {
                    if (await isRetryTask(ApiErrorCode.ConnectionFailure))
                    {
                        continue;
                    }
                    return(false);
                }

                try
                {
                    var json = await ApiClient.Client.GetStringAsync(Path);

                    Response = await Task.Run(() => JsonConvert.DeserializeObject <TResponse>(json));
                }
                catch
                {
                    if (await isRetryTask(ApiErrorCode.ConnectionFailure))
                    {
                        continue;
                    }
                    return(false);
                }

                break;
            }

            // 正常時true
            return(true);
        }