/// <summary> /// This service comprises of registration/ un-registration request and response. /// </summary> /// <param name="subscriptionRequestDto">Subscription Data</param> /// <returns></returns> private async Task <HttpResponseMessage> SubscribeUser(SubscriptionRequestDto subscriptionRequestDto) { try { Log.TraceStart(); var requestUri = string.Format("{0}{1}", _baseUrl, Consts.URL_SUBSCRIPTION_ADD); var contentType = InternetMediaType.ApplicationJson; var postBody = JsonConvert.SerializeObject(subscriptionRequestDto); var content = new StringContent(postBody); using (var client = new HttpClient()) { ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate); //Send HTTP requests //client.BaseAddress = new Uri(Consts.URL_BASE_ADDRESS); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(contentType)); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, requestUri); content.Headers.ContentType = MediaTypeHeaderValue.Parse(contentType); var response = await client.PostAsync(requestUri, content); if (response.IsSuccessStatusCode) { return(response); } var ex = new HttpResponseException(new HttpResponseMessage() { StatusCode = response.StatusCode, Content = response.Content, ReasonPhrase = response.ReasonPhrase, RequestMessage = response.RequestMessage, Version = response.Version, }); var fieldInfo = ex.GetType().GetField("_message", BindingFlags.Instance | BindingFlags.NonPublic); if (fieldInfo != null) { fieldInfo.SetValue(ex, string.Format("{0}{1}HTTP Response:{1}{2}", ex.Message, Environment.NewLine, response.ToString())); } Log.TraceEnd(); throw ex; } } catch (Exception ex) { Log.Exception(ex); throw; } }
static readonly string _baseUrl = "http://localhost:7000/";// ConfigurationManager.AppSettings["baseUrl"]; #region Subscription APIs /// <summary> /// Subscribe user from an application. /// </summary> /// <param name="applicationId"></param> /// <param name="password"></param> /// <param name="subscriberId"></param> /// <returns></returns> public async Task <IdeaMartStatusResponse> Add(string applicationId, string password, string subscriberId) { Log.TraceStart(); IdeaMartStatusResponse response = null; try { SubscriptionRequestDto subscriptionRequestDto = new SubscriptionRequestDto(); subscriptionRequestDto.applicationId = applicationId; subscriptionRequestDto.password = password; subscriptionRequestDto.subscriberId = subscriberId; subscriptionRequestDto.action = "1"; subscriptionRequestDto.version = "1.0"; var subscriptionResponse = await SubscribeUser(subscriptionRequestDto); if (subscriptionResponse.IsSuccessStatusCode) { var result = subscriptionResponse.Content.ReadAsAsync <dynamic>().Result; response = new IdeaMartStatusResponse(); response.requestId = result.requestId; response.statusCode = result.statusCode; response.statusDetail = result.statusDetail; response.timeStamp = DateTime.UtcNow.ToString(); response.version = result.version; } else { Log.Error(Resources.Subscription_SubscriptionServiceFailed); } } catch (Exception ex) { Log.Exception(ex); } Log.TraceEnd(); return(response); }
private Task <HttpResponseMessage> SubscribeUser(SubscriptionRequestDto subscriptionRequestDto) { Log.TraceStart(); using (var client = new HttpClient()) { //ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateServerCertificate); string requestId = Guid.NewGuid().ToString(); //Send HTTP requests client.BaseAddress = new Uri(Consts.URL_BASE_ADDRESS); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var request = new HttpRequestMessage(HttpMethod.Get, new Uri(Consts.URL_BASE_ADDRESS + Consts.URL_SUBSCRIPTION_ADD)); var postBody = JsonConvert.SerializeObject(subscriptionRequestDto); request.Content = new StringContent(postBody); var response = client.SendAsync(request); Log.TraceEnd(); return(response); } }
//public async Task<Response<SubscriptionResponseDto>> Add(string applicationId, string password, string subscriberId, bool action) public async Task <Response <SubscriptionResponseDto> > Add(SubscriptionRequestDto subscriptionRequestDto) { Log.TraceStart(); Response <SubscriptionResponseDto> response = null; try { //SubscriptionRequestDto subscriptionRequestDto = new SubscriptionRequestDto(); //subscriptionRequestDto.applicationId = applicationId; //subscriptionRequestDto.password = password; //subscriptionRequestDto.subscriberId = subscriberId; //subscriptionRequestDto.action = (action) ? "1" : "0"; //subscriptionRequestDto.version = "1.0"; var subscriptionResponse = await SubscribeUser(subscriptionRequestDto); if (subscriptionResponse.IsSuccessStatusCode) { var result = subscriptionResponse.Content.ReadAsAsync <dynamic>().Result; SubscriptionResponseDto subscriptionResponseDto = new SubscriptionResponseDto(); //subscriptionResponseDto = MapToSubscriptionResponseDto(result); response = new Response <SubscriptionResponseDto>(CP.Enum.StatusCode.Success, Resources.Success, subscriptionResponseDto); } else { return(WebApiHelper.GetErrorResponce <SubscriptionResponseDto>(CP.Enum.StatusCode.SubscriptionServiceFailed, Resources.Subscription_SubscriptionServiceFailed)); } Log.TraceEnd(); return(response); } catch (Exception ex) { Log.Exception(ex); return(WebApiHelper.GetErrorResponce <SubscriptionResponseDto>(CP.Enum.StatusCode.Error, Resources.Error_ServiceAccessFailed)); } }