public static async Task <JsonBasicResult <T> > MultipartUpload <T>(string uri, Dictionary <string, string> dict) where T : new() { try { string boundary = "-------" + DateTime.Now.Ticks.ToString("x") + "--"; using (var formContent = new MultipartFormDataContent(boundary)) { foreach (var d in dict) { if (!string.IsNullOrEmpty(d.Value)) { formContent.Add(new StringContent(d.Value), d.Key); } } App.client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("multipart/form-data")); string json_data = await App.client.PostAsync(Globals.baseURL + uri, formContent).Result.Content.ReadAsStringAsync(); App.client.DefaultRequestHeaders.Accept.Clear(); if (!string.IsNullOrEmpty(json_data)) { JsonBasicResult <T> json = JsonConvert.DeserializeObject <JsonBasicResult <T> >(json_data); if (json.ok) { if (json.data != null) { //T updated = json.data; return(new JsonBasicResult <T>(true, json.data, "")); } else { return(new JsonBasicResult <T>(true, new T(), "")); } } else { throw new Exception(json.message); } } else { throw new Exception("No result data!"); } } } catch (Exception e) { ShowErrorMessageDialog(e); return(new JsonBasicResult <T>(false, new T(), ErrorMessage(e))); } }
/// <summary> /// /// </summary> /// <param name="uri">URI end path (echinacareers.com/controller/ base URL is added inside method. Do not include here)</param> /// <param name="dict">query parameters</param> /// <returns></returns> public static async Task <JsonBasicResult <T> > PostItem <T>(string uri, Dictionary <string, string> dict) where T : new() { try { var stringPayload = JsonConvert.SerializeObject(dict); var content = new StringContent(stringPayload, Encoding.UTF8, "application/json"); App.client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); string json_data = await App.client.PostAsync(Globals.baseURL + uri, content).Result.Content.ReadAsStringAsync(); App.client.DefaultRequestHeaders.Accept.Clear(); if (!string.IsNullOrEmpty(json_data)) { JsonBasicResult <T> json = JsonConvert.DeserializeObject <JsonBasicResult <T> >(json_data); if (json.ok) { if (json.data != null) { //T updated = json.data; return(new JsonBasicResult <T>(true, json.data, "")); } else { return(new JsonBasicResult <T>(true, new T(), "")); } } else { throw new Exception(json.message); } } else { throw new Exception("No result data!"); } } catch (Exception e) { ShowErrorMessageDialog(e); return(new JsonBasicResult <T>(false, new T(), ErrorMessage(e))); } }