public async void DetalhesProduto() { /* * VSCHG6C00380AYCPNF69CHH0VL * J6DW4YPZW4FS3V4R7SR4A99H71 * NR05F8D0AVKPL94DHT3ZXGLF9T * R1VPF50C18JWLXQ7XA0SC5N68V * 6JKSY80SRPLLRVYB7TSZ6GXPXX * 0LDPYCT1DKHTM4THQKRNLBH3WY * KYLDH3VVCV3HD832HXQZWNHTDD * VJLMZVJ13Z7ZFRCW3Y2QP95C5G * 22FP9XNMYXWQ0WS7AVR6X5MBS5 * CDCH25A6S6P94DVK5NN0AZYV8Q - HH * MNVL66QAL2NCGRMAG6NAH1CGNT * GQGP549HYVDT2W0Q7XP5FM5978 * 206ZKRLG3M7F33QC755HW8812D * MZVFC9RA7SRHYMTXD62V96XKAZ * 350L6WMMM3PVT84J764WYKNK78 * 2QH1D633YYJJ575A18SF7FY7SV * RQ7VVX9CKA2MW8ZGHB9GJBXPJ1 * Z0R27KYRJAMRYV4WLQLRZ30881 * 3CJFG7P5SX0VX8TB74TDQ2F8QR * S1XF19JX1237S8DX2CS2MMLYD1 * 7JD0L9Z591BH2Z8W8WXK0ZQXXJ */ var request = new ObterDetalhesProdutoRequest() { IdProduto = "CDCH25A6S6P94DVK5NN0AZYV8Q" }; var response = await ObterService().DetalhesProduto(request); Assert.True(response.Valido); }
public async void DetalhesProdutoComException() { var request = new ObterDetalhesProdutoRequest() { IdProduto = "FAIL" }; var response = await ObterService().DetalhesProduto(request); Assert.False(response.Valido); }
public async Task <ObterDetalhesProdutoResponse> DetalhesProduto(ObterDetalhesProdutoRequest request) { var response = new ObterDetalhesProdutoResponse() { Configuracoes = new List <ConfiguracaoProdutoResponse>() }; using (var httpClient = HelperBHNHttpService.ObterHttpClientBhn(_dadosBhn)) { var endpoint = HelperBHNHttpService.ObterEndPoint(this._dadosBhn.DetalhesProdutoRota, request.IdProduto); var bhnResponse = await httpClient.GetAsync(endpoint); var responseString = bhnResponse.ConvertToString(); if (bhnResponse.Valido()) { JObject bhnObjectResponse = JObject.Parse(responseString); response.IdProduto = bhnObjectResponse["entityId"].ToString().ObterEntityId(); response.Nome = bhnObjectResponse["summary"]["productName"].ToString(); response.Preco = Convert.ToDecimal(bhnObjectResponse["details"]["activationCharacteristics"]["baseValueAmount"].ToString()); response.PrecoMaximo = Convert.ToDecimal(bhnObjectResponse["details"]["activationCharacteristics"]["maxValueAmount"].ToString()); response.ConfiguracaoPadrao = bhnObjectResponse["details"]["defaultProductConfigurationId"].ToString(); var configurations = bhnObjectResponse["details"]["productConfigurations"].Children().ToList(); foreach (JToken config in configurations) { response.Configuracoes.Add(new ConfiguracaoProdutoResponse() { Id = config["configurationId"].ToString(), Nome = config["configurationName"].ToString() }); } } else { var erro = JsonConvert.DeserializeObject <BHNErrorResponse>(responseString.TratarErrorResponse()); throw new BHNResponseException(bhnResponse.StatusCode, erro.ErrorCode, erro.Message); } } return(response); }
public async Task <ObterDetalhesProdutoResponse> DetalhesProduto(ObterDetalhesProdutoRequest request) { var response = new ObterDetalhesProdutoResponse(); try { var validationResult = request.Validate(); if (!validationResult.IsValid) { response.Valido = false; foreach (var failure in validationResult.Errors) { response.AdicionarMensagemErro(TipoMensagem.Validacao, failure.ErrorMessage); } } else { var produtoRequest = await this._httpService.DetalhesProduto(request); return(produtoRequest); } } catch (BHNResponseException bhnEx) { response.Valido = false; response.AdicionarMensagemErro(TipoMensagem.Aplicacao, bhnEx.ToString()); } catch (ApplicationException appEx) { response.Valido = false; response.AdicionarMensagemErro(TipoMensagem.ErroNegocio, appEx.Message); } catch (Exception ex) { response.Valido = false; response.AdicionarMensagemErro(TipoMensagem.ErroAplicacao, ex.StackTrace); } return(response); }
public async Task <ActionResult> Get(ObterDetalhesProdutoRequest request) { var response = await _service.DetalhesProduto(request); return(this.GetHttpResponse(response)); }