public async Task <VersaoCatalogoResponse> VerificarVersao(VersaoCatalogoRequest request) { var response = new VersaoCatalogoResponse(); 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 verificarCatalogoResponse = await _httpService.VerificarVersao(request); verificarCatalogoResponse.Valido = true; return(verificarCatalogoResponse); } } catch (HttpRequestException httpEx) { response.Valido = false; response.AdicionarMensagemErro(TipoMensagem.Aplicacao, httpEx.Message); } 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 <VersaoCatalogoResponse> VerificarVersao(VersaoCatalogoRequest request) { var response = new VersaoCatalogoResponse() { Catalogos = new List <DadosCatalogoResponse>() }; using (var httpClient = HelperBHNHttpService.ObterHttpClientBhn(_dadosBhn)) { var endpoint = this._dadosBhn.VersaoCatalogoRota; var bhnResponse = await httpClient.GetAsync(endpoint); var responseString = bhnResponse.ConvertToString(); if (bhnResponse.Valido()) { JObject bhnObjectResponse = JObject.Parse(responseString); var results = bhnObjectResponse["results"].Children().ToList(); foreach (JToken result in results) { response.Catalogos.Add(new DadosCatalogoResponse() { IdCatalogo = result["entityId"].ToString().ObterEntityId(), Nome = result["name"].ToString(), Versao = result["version"].ToString(), }); } response.Total = response.Catalogos.Count; return(response); } else { var erro = JsonConvert.DeserializeObject <BHNErrorResponse>(responseString.TratarErrorResponse()); throw new BHNResponseException(bhnResponse.StatusCode, erro.ErrorCode, erro.Message); } } }