public async Task <GerarCompraResponse> GerarCodigo(GerarCompraRequest request) { var response = new GerarCompraResponse(); try { var validationResult = request.Validate(); if (!validationResult.IsValid) { response.Valido = false; foreach (var failure in validationResult.Errors) { response.AdicionarMensagemErro(TipoMensagem.Validacao, failure.ErrorMessage); } } else { request.GerarEGift.RequisicaoId = request.GerarEGift.RequisicaoId ?? request.GerarEGift.GerarRequisicaoId(); var gerarEGift = request.GerarEGift.Map(); if (!gerarEGift.Validar()) { response.Valido = false; response.AdicionarMensagemErro(TipoMensagem.ErroNegocio, "Dados para Geração do EGift inválidos"); return(response); } var result = await gerarEGift.Gerar(gerarEGift.RequisicaoId); response.Valido = result.Valido; if (!result.Valido) { response.AdicionarMensagemErro(TipoMensagem.ErroNegocio, "Não foi possível gerar o EGift"); } else { response.EGift = gerarEGift.Map(); } } } catch (ApplicationException appEx) { response.Valido = false; response.AdicionarMensagemErro(TipoMensagem.ErroNegocio, appEx.Message); } catch (Exception ex) { response.Valido = false; response.AdicionarMensagemErro(TipoMensagem.ErroAplicacao, ex.Message); response.AdicionarMensagemErro(TipoMensagem.ErroAplicacao, ex.StackTrace); } return(response); }
public async void TestaExceptionProductConfigurationInvalida() { var request = new GerarCompraRequest() { GerarEGift = GerarEGiftDtoPadrao() }; request.GerarEGift.SKUParceiro = "FAIL"; var response = await ObterService().GerarCodigo(request); Assert.False(response.Valido); }
public async void TestaGeracaoKey() { var request = new GerarCompraRequest() { GerarEGift = GerarEGiftDtoPadrao() }; request.GerarEGift.GerarCodigoAtivacao = true; var response = await ObterService().GerarCodigo(request); Assert.NotNull(response.EGift.Ativacao); }
public async void TestaGeracaoHash() { var request = new GerarCompraRequest() { GerarEGift = GerarEGiftDtoPadrao() }; var response = await ObterService().GerarCodigo(request); Uri url; Assert.True( Uri.TryCreate(response.EGift.Ativacao, UriKind.Absolute, out url) && (url.Scheme == Uri.UriSchemeHttp || url.Scheme == Uri.UriSchemeHttps) ); }
public async void TestaChamadaKey() { var requestHash = new GerarCompraRequest() { GerarEGift = GerarEGiftDtoPadrao() }; requestHash.GerarEGift.GerarCodigoAtivacao = true; var responseHash = await ObterService().GerarCodigo(requestHash); var request = requestHash; request.GerarEGift.Hash = responseHash.EGift.Hash; request.GerarEGift.ClienteId = responseHash.EGift.ClienteId; var response = await ObterService().GerarCodigo(request); Assert.NotNull(response.EGift.Ativacao); }
public async void TestaDesfazimento() { var requestEGift = new GerarCompraRequest() { GerarEGift = GerarEGiftDtoPadrao() }; var responseEGift = await ObterService().GerarCodigo(requestEGift); Assert.NotEmpty(responseEGift.EGift.RequisicaoId); var request = new DesfazimentoRequest() { RequisicaoId = responseEGift.EGift.RequisicaoId }; var response = await ObterService().Desfazimento(request); Assert.True(response.Valido); }
public async Task <ActionResult> Post([FromBody] GerarCompraRequest request) { var response = await _service.GerarCodigo(request); return(this.GetHttpResponse(response)); }