コード例 #1
0
        private Uri BuildPostURL(PostActionMethods method)
        {
            string actionUrl = FindPostUrl(method);
            Uri    uri       = new Uri(_baseUrlAddress + actionUrl);

            return(uri);
        }
コード例 #2
0
        public async Task <ResponseModel> PostDataAsync <T>(PostActionMethods method, T data, bool showSuccess = false)
        {
            if (CrossConnectivity.Current.IsConnected)
            {
                Uri requestUrl = BuildPostURL(method);
                if (await CrossConnectivity.Current.IsRemoteReachable(requestUrl.Host, requestUrl.Port, 5000))
                {
                    PostRequestModel model   = BuildRequestDataModel(data);
                    string           json    = JsonConvert.SerializeObject(model);
                    StringContent    content = new StringContent(json, Encoding.UTF8, "application/json");
                    var cts = new CancellationTokenSource();
                    cts.CancelAfter(Client.Timeout);
                    try
                    {
                        using (HttpResponseMessage response = await Client.PostAsync(requestUrl, content, cts.Token))
                        {
                            string responseContent = await response.Content.ReadAsStringAsync();

                            if (!response.IsSuccessStatusCode)
                            {
                                UserDialogs.Instance.Toast(string.Format(AppResources.ResourceManager.GetString("notSuccessfulMethod"), response.StatusCode), new TimeSpan(0, 0, 3));
                            }
                            return(new ResponseModel(responseContent, response.StatusCode, response.IsSuccessStatusCode));
                        }
                    }
                    catch (Exception ex)
                    {
                        UserDialogs.Instance.Toast(string.Format(AppResources.ResourceManager.GetString("errorMethod"), ex.Message), new TimeSpan(0, 0, 3));
                    }
                }
                else
                {
                    UserDialogs.Instance.Toast(AppResources.ResourceManager.GetString("noServer"), new TimeSpan(0, 0, 3));
                }
            }
            else
            {
                UserDialogs.Instance.Toast(AppResources.ResourceManager.GetString("noInternet"), new TimeSpan(0, 0, 3));
            }

            return(new ResponseModel(null, System.Net.HttpStatusCode.BadRequest));
        }
コード例 #3
0
        private string FindPostUrl(PostActionMethods method)
        {
            string actionUrl = null;

            switch (method)
            {
            case PostActionMethods.CreateUser:
                actionUrl = "register";
                break;

            case PostActionMethods.Login:
                actionUrl = "login";
                break;

            case PostActionMethods.Logout:
                actionUrl = "logout";
                break;

            case PostActionMethods.SaveUserInformation:
                actionUrl = "saveUserInformation";
                break;

            case PostActionMethods.SaveAddress:
                actionUrl = "saveAddress";
                break;

            case PostActionMethods.SaveCooker:
                actionUrl = "saveCookerInformation";
                break;

            case PostActionMethods.Order:
                actionUrl = "place-order";
                break;

            case PostActionMethods.Orders:
                actionUrl = "list-orders";
                break;

            case PostActionMethods.VoteOrder:
                actionUrl = "order-rating";
                break;

            case PostActionMethods.DeleteAddress:
                actionUrl = "deleteAddress";
                break;

            case PostActionMethods.GetAddresses:
                actionUrl = "listAddresses";
                break;

            case PostActionMethods.ReplyOrder:
                actionUrl = "reply-order";
                break;

            case PostActionMethods.UpdateFCM:
                actionUrl = "fcm-edit";
                break;

            default:
                break;
            }
            return(actionUrl);
        }