コード例 #1
0
        /// <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;
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        //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));
            }
        }