private Uri BuildPostURL(PostActionMethods method) { string actionUrl = FindPostUrl(method); Uri uri = new Uri(_baseUrlAddress + actionUrl); return(uri); }
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)); }
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); }