Exemplo n.º 1
0
        public ActionResult Post([FromBody] CompraDto compraDto)
        {
            if (compraDto == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(UnprocessableEntity(ModelState));
            }

            var revendedora = _revendedoraService.Obter(compraDto.CpfRevendedor);

            if (revendedora == null)
            {
                return(NotFound("Revendedor(a) não encontrado(a)!"));
            }

            var compra = new CompraModel
            {
                CodigoCompra  = compraDto.CodigoCompra,
                CpfRevendedor = compraDto.CpfRevendedor,
                DataCompra    = compraDto.DataCompra,
                Valor         = compraDto.Valor,
                RevendedoraId = revendedora.Id
            };

            _compraService.Criar(compra);

            var created = Created($"/api/compra/{compra.Id}", compra);

            return(created);
        }
Exemplo n.º 2
0
 public static Compra Map(this CompraDto entity)
 {
     if (entity == null)
     {
         return(null);
     }
     return(new Compra()
     {
         Email = entity.Email,
         IdCompra = entity.IdCompra,
         IdCompraEntregaSku = entity.IdCompraEntregaSku,
         IdProdutoParceiro = entity.IdProdutoParceiro
     });
 }
Exemplo n.º 3
0
        public CompraDto GetComprasByUsuario(Guid idUsuario)
        {
            var usuario   = usuarioDao.GetById(idUsuario);
            var compraDto = new CompraDto
            {
                Nombre   = usuario.Nombre,
                Apellido = usuario.Apellido
            };
            var comprasDeUsuario = comprasDao.GetByIdUsuario(idUsuario);

            foreach (var c in comprasDeUsuario)
            {
                compraDto.TotalCreditos = compraDto.TotalCreditos + c.CantCreditos;
                compraDto.TotalPrecio   = compraDto.TotalPrecio + c.Precio;
            }
            return(compraDto);
        }
        public void Atualizar_Valor_Compra_Cashback_Sucesso_Test()
        {
            Autenticar();

            var compraDto = new CompraDto
            {
                CodigoCompra  = "R14B96E17",
                Valor         = 1500.1,
                DataCompra    = DateTime.Parse("2020-02-14"),
                CpfRevendedor = "123.123.123-23"
            };

            CompraModel compra = null;

            if (AutenticadoComToken)
            {
                //ExecuteWithToken é um método de extensão que está na classe RetryPolicyExtensions, em Cashback_WebApi.Extensoes.
                var response = _jwtPolicy.ExecuteWithToken(_token, context =>
                {
                    var requestMessage = new HttpRequestMessage(HttpMethod.Put, "compra/8")
                    {
                        Content = new StringContent(
                            JsonConvert.SerializeObject(compraDto), Encoding.UTF8, "application/json")
                    };

                    requestMessage.Headers.Add("Authorization", $"Bearer {context["AccessToken"]}");

                    var responseMessage = _client.SendAsync(requestMessage).Result;

                    return(responseMessage);
                });

                if (response.IsSuccessStatusCode)
                {
                    var conteudo = response.Content.ReadAsStringAsync().Result;
                    compra = JsonConvert.DeserializeObject <CompraModel>(conteudo);
                }
            }

            double cashbackAtualizado = 300.02;

            Assert.IsTrue(compra.Cashback == cashbackAtualizado);
        }
Exemplo n.º 5
0
        public static Compra ToCompra(CompraDto dto)
        {
            if (dto == null)
            {
                return(null);
            }

            Compra compra = new Compra
            {
                Id         = dto.Id,
                Activo     = dto.Activo,
                Proveedor  = ProveedorMapper.ToProveedor(dto.Proveedor),
                Fecha      = dto.Fecha,
                Trabajador = TrabajadorMapper.ToTrabajador(dto.Trabajador),
                Detalles   = ToDetalles(dto.Detalles),
                Estado     = dto.Estado
            };

            return(compra);
        }
Exemplo n.º 6
0
        public static CompraDto ToCompraDto(Compra compra)
        {
            if (compra == null)
            {
                return(null);
            }

            CompraDto dto = new CompraDto
            {
                Id         = compra.Id,
                Activo     = compra.Activo,
                Proveedor  = ProveedorMapper.ToProveedorDto(compra.Proveedor),
                Fecha      = compra.Fecha,
                Trabajador = TrabajadorMapper.ToTrabajadorDto(compra.Trabajador),
                Detalles   = ToDetallesDto(compra.Detalles),
                Estado     = compra.Estado
            };

            return(dto);
        }
Exemplo n.º 7
0
        // POST: api/Compra
        public GenericResponse <String> Post([FromBody] CompraDto compra)
        {
            GenericResponse <String> response = new GenericResponse <String>();

            try
            {
                servicio.Crear(compra);
                response = ResponseUtil.CrearRespuestaOk();
            }
            catch (CustomResponseException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw new CustomResponseException(ex.Message, 500);
            }


            return(response);
        }
Exemplo n.º 8
0
        public ActionResult Put(int id, [FromBody] CompraDto compraDto)
        {
            if (compraDto == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(UnprocessableEntity(ModelState));
            }

            var compra = _compraService.Obter(id);

            if (compra == null)
            {
                return(NotFound("Venda não encontrada!"));
            }

            if (compra.Status == StatusCompraConstante.Aprovado)
            {
                return(StatusCode(405, "Venda já aprovada!"));
            }

            var revendedora = _revendedoraService.Obter(compraDto.CpfRevendedor);

            if (revendedora == null)
            {
                return(NotFound("Revendedor(a) não encontrado(a)!"));
            }

            compra.CodigoCompra  = compraDto.CodigoCompra;
            compra.Valor         = compraDto.Valor;
            compra.DataCompra    = compraDto.DataCompra;
            compra.CpfRevendedor = compraDto.CpfRevendedor;

            _compraService.Atualizar(compra);

            return(Ok(compra));
        }
Exemplo n.º 9
0
        public async Task <IActionResult> Post(
            [FromServices] BackendTestContext context,
            [FromBody] CompraDto model)
        {
            try
            {
                HttpClientHandler clientHandler = new HttpClientHandler();
                clientHandler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return(true); };

                // O gateway fornecido (http://sv-dev-01.pareazul.com.br:8080/api/gateways/compras) não conseguiu ser acessado
                // e por tanto decidi por usar a api de pagamentos implementada no item 6 como gateway
                Uri link   = new Uri("http://127.0.0.1:5000/api/pagamento/compras");
                var client = new HttpClient(clientHandler);

                Produto produto = await context.Produtos.AsNoTracking().FirstOrDefaultAsync(p => p.Id == model.Produto_Id);

                if (produto == null || produto.QtdeEstoque < model.Qtde_Comprada)
                {
                    return(BadRequest("Ocorreu um erro desconhecido"));
                }

                PagamentoDto pagamento = new PagamentoDto()
                {
                    Valor  = produto.ValorUnitario * model.Qtde_Comprada,
                    Cartao = model.Cartao
                };
                var jsonInString = JsonConvert.SerializeObject(pagamento);

                var httpResponse = await client.PostAsync(link, new StringContent(jsonInString, Encoding.UTF8, "application/json"));

                httpResponse.EnsureSuccessStatusCode();

                string respostaEmString = await httpResponse.Content.ReadAsStringAsync();

                dynamic gatewayJson = JsonConvert.DeserializeObject(respostaEmString);

                DateTime now = DateTime.Now;

                // Atualizando a quantidade de estoque do produto e a data de atualização
                produto.QtdeEstoque     = produto.QtdeEstoque - model.Qtde_Comprada;
                produto.DataAtualizacao = now;

                context.Entry(produto).State = EntityState.Modified;

                // Cadastrando a transação
                Transacao transacao = new Transacao()
                {
                    ProdutoId  = model.Produto_Id,
                    ValorVenda = gatewayJson.valor,
                    DataVenda  = now,
                    Estado     = gatewayJson.estado
                };

                context.Transacoes.Add(transacao);

                await context.SaveChangesAsync();

                return(Ok("Venda realizada com sucesso"));
            }
            catch
            {
                return(BadRequest("Ocorreu um erro desconhecido"));
            }
        }
Exemplo n.º 10
0
 public void Actualizar(CompraDto compra)
 {
     repositorio.Actualizar(CompraMapper.ToCompra(compra));
 }
Exemplo n.º 11
0
 public void Crear(CompraDto compra)
 {
     repositorio.Crear(CompraMapper.ToCompra(compra));
 }
Exemplo n.º 12
0
        public CompraItemDto()
        {
            Compra = new CompraDto();

        }