示例#1
0
        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);
        }
示例#2
0
        public async void DetalhesProdutoComException()
        {
            var request = new ObterDetalhesProdutoRequest()
            {
                IdProduto = "FAIL"
            };

            var response = await ObterService().DetalhesProduto(request);

            Assert.False(response.Valido);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }
示例#5
0
        public async Task <ActionResult> Get(ObterDetalhesProdutoRequest request)
        {
            var response = await _service.DetalhesProduto(request);

            return(this.GetHttpResponse(response));
        }