/// <summary> /// Make put request to service and return reference object /// </summary> /// <typeparam name="T">Return type of service</typeparam> /// <param name="method">Name of the rest method</param> /// <returns></returns> public T GetData <T>(string method) where T : class { using (var proxy = new BKICWebClient()) { try { SetRequestHeaders(proxy); var data = proxy.GetAsync(new Uri(WebApiPath + method)); data.Wait(); HttpResponseMessage result = data.Result; if (result.IsSuccessStatusCode) { var response = JsonConvert.DeserializeObject <T>(result.Content.ReadAsStringAsync().Result.ToString()); return(response ?? (T)Activator.CreateInstance(typeof(T))); } else { return(BindBadRequestDetails <T>(result)); } } catch (Exception exc) { return(BindRequestExceptionDetails <T>(exc)); } } }
/// <summary> /// Post values to service and return reference type /// </summary> /// <typeparam name="T1"> Return object type of service</typeparam> /// <typeparam name="T2"> Input object type of service</typeparam> /// <param name="method"> Name of the rest method</param> /// <param name="t2"> Object needs to be posted to service</param> /// <returns></returns> public T1 PostData <T1, T2>(string method, T2 t2) where T1 : class { using (var proxy = new BKICWebClient()) { try { SetRequestHeaders(proxy); var serializedObject = JsonConvert.SerializeObject(t2); var mediaType = ""; HttpContent postContent; if (IsLoginAction) { var tokenSecurityInfo = t2 as BKIC.SellingPoint.DTO.RequestResponseWrappers.OAuthRequest; var login = new Dictionary <string, string> { { "grant_type", "password" }, { "username", tokenSecurityInfo.UserName }, { "password", tokenSecurityInfo.Password }, }; postContent = new FormUrlEncodedContent(login); } else { mediaType = "application/json"; postContent = new StringContent(serializedObject.ToString(), System.Text.Encoding.UTF8, mediaType); } //mediaType = "application/json"; //postContent = new StringContent(serializedObject.ToString(), System.Text.Encoding.UTF8, mediaType); var proxyPost = proxy.PostAsync(new Uri(WebApiPath + method), postContent); proxyPost.Wait(); HttpResponseMessage result = proxyPost.Result; if (result.IsSuccessStatusCode) { var response = JsonConvert.DeserializeObject <T1>(result.Content.ReadAsStringAsync().Result); return(response ?? (T1)Activator.CreateInstance(typeof(T1))); } else { return(BindBadRequestDetails <T1>(result)); } } catch (Exception exc) { return(BindRequestExceptionDetails <T1>(exc)); } } }
public T1 PostDataWithNormalDate <T1, T2>(string method, T2 t2) where T1 : class { using (var proxy = new BKICWebClient()) { try { SetRequestHeaders(proxy); var serializedObject = JsonConvert.SerializeObject(t2, new IsoDateTimeConverter() { DateTimeFormat = "dd/MM/yyyy" }); var mediaType = ""; HttpContent postContent; mediaType = "application/json"; postContent = new StringContent(serializedObject.ToString(), System.Text.Encoding.UTF8, mediaType); var proxyPost = proxy.PostAsync(new Uri(WebApiPath + method), postContent); proxyPost.Wait(); HttpResponseMessage result = proxyPost.Result; if (result.IsSuccessStatusCode) { var response = JsonConvert.DeserializeObject <T1>(result.Content.ReadAsStringAsync().Result, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore }); return(response ?? (T1)Activator.CreateInstance(typeof(T1))); } else { return(BindBadRequestDetails <T1>(result)); } } catch (Exception exc) { return(BindRequestExceptionDetails <T1>(exc)); } } }
public T UploadFile <T>(string method, string filePath, string accessToken = "") where T : class { using (var proxy = new BKICWebClient()) { proxy.MaxResponseContentBufferSize = int.MaxValue; proxy.DefaultRequestHeaders.Accept.Clear(); if (!string.IsNullOrEmpty(accessToken)) { proxy.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken); } try { string fileName = GetFileName(filePath); FileStream fileStream = GetFileStream(filePath); HttpContent bytesContent = new StreamContent(fileStream); using (var client = new HttpClient()) using (var formData = new MultipartFormDataContent()) { formData.Add(bytesContent, "uploadfile", fileName); var response = client.PostAsync(new Uri(WebApiPath + method), formData).Result; if (!response.IsSuccessStatusCode) { return(BindBadRequestDetails <T>(response)); } var result = JsonConvert.DeserializeObject <T>(response.Content.ReadAsStringAsync().Result.ToString()); return(result ?? (T)Activator.CreateInstance(typeof(T))); } } catch (Exception exc) { return(BindRequestExceptionDetails <T>(exc)); } } }