示例#1
0
        public static string ObterHash(this GenerateEGiftHashResponse response)
        {
            var hash = response.EntityId;

            hash = hash.Substring(hash.LastIndexOf('/') + 1);
            return(hash);
        }
示例#2
0
 public static GenerateEGiftKeyRequest Map(this GenerateEGiftHashResponse response)
 {
     return(new GenerateEGiftKeyRequest()
     {
         Hash = response.EntityId,
         IdCliente = response.AccountId
     });
 }
示例#3
0
        public static string ObterAccountId(this GenerateEGiftHashResponse response)
        {
            var accountId = response.AccountId;

            if (accountId.Contains("accountId="))
            {
                accountId = accountId.Substring(accountId.IndexOf("accountId="));
                accountId = accountId.Replace("accountId=", "");
                return(accountId);
            }

            return("");
        }
示例#4
0
        public async Task <GenerateEGiftHashResponse> GerarHashEGift(GenerateEGiftHashRequest request)
        {
            var response = new GenerateEGiftHashResponse();

            using (var httpClient = HelperBHNHttpService.ObterHttpClientBhn(_dadosBhn))
            {
                var formData = new
                {
                    //giftFrom = "",
                    //giftTo = "",
                    //giftMessage = "",
                    //notes = "",
                    giftAmount = request.Preco,
                    //purchaserId = this._dadosBhn.VendedorId,
                    //recipientId = this._dadosBhn.VendedorId,
                    retrievalReferenceNumber = request.NumeroPedido,
                    productConfigurationId   = request.ProductConfigutationId
                };

                var endpoint   = httpClient.BaseAddress + this._dadosBhn.GerarHashRota;
                var bhnRequest = new HttpRequestMessage(HttpMethod.Post, endpoint);
                bhnRequest.Headers.Add("requestId", request.RequisicaoId);

                if (request.TentativasAnteriores > 0)
                {
                    bhnRequest.Headers.Add("previousAttempts", request.TentativasAnteriores.ToString());
                }

                using (var content = new StringContent(JsonConvert.SerializeObject(formData), Encoding.UTF8, "application/json"))
                {
                    bhnRequest.Content = content;

                    var log_request = string.Format("{0} {1}", bhnRequest.ToString(), bhnRequest.Content.ReadAsStringAsync().Result);

                    var bhnResponse = await httpClient.SendAsync(bhnRequest);

                    var responseString = bhnResponse.ConvertToString();

                    var log_response = string.Format("{0} {1}", bhnResponse.ToString(), responseString);

                    response.AdicionarMensagemErro(TipoMensagem.Aplicacao, log_request);
                    response.AdicionarMensagemErro(TipoMensagem.Aplicacao, log_response);

                    if (bhnResponse.Valido())
                    {
                        var responseObject = JObject.Parse(responseString);
                        response.EntityId      = responseObject["entityId"].ToString().ObterEntityId();
                        response.AccountId     = responseObject["accountId"].ToString().ObterAccountId();
                        response.Status        = responseObject["status"].ToString();
                        response.ActivationUrl = string.Format(this._dadosBhn.TemplateActivationSpot, response.EntityId);

                        return(response);
                    }
                    else
                    {
                        var erro = JsonConvert.DeserializeObject <BHNErrorResponse>(responseString.TratarErrorResponse());
                        throw new BHNResponseException(bhnResponse.StatusCode, erro.ErrorCode, erro.Message);
                    }
                }
            }
        }