public async Task <IActionResult> AdicionarPedido(AdicionarPedidoViewModel pedidoViewModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState.Values.Select(x => x.Errors))); } var username = User.Identities.FirstOrDefault().Name; var user = await _userService.GetByUserName(username); var cliente = user.Cliente; if (user.Cliente == null) { return(BadRequest("Usuário não é um Cliente")); } var pedido = new Pedido(peso: pedidoViewModel.Peso, DateTime.Now, EnumStatusPedido.AguardandoEntregador); pedido.InformarCliente(cliente); var motivoRejeicaoPedido = _pedidoService.IsPedidoValido(pedido); if (!String.IsNullOrEmpty(_pedidoService.IsPedidoValido(pedido))) { return(BadRequest($"Pedido rejeitado: {motivoRejeicaoPedido}")); } await _pedidoService.Insert(pedido); return(Ok(pedido)); }
public async Task <IActionResult> AdicionarPedido(AdicionarPedidoViewModel pedidoViewModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState.Values.Select(x => x.Errors))); } var username = User.Identities.FirstOrDefault().Name; var user = await _userService.GetByUserName(username); var cliente = user.Cliente; if (user.Cliente == null) { return(BadRequest("Usuário não é um Cliente")); } var pedido = new Pedido(peso: pedidoViewModel.Peso, DateTime.Now, EnumStatusPedido.AguardandoPagamento, pedidoViewModel.Valor); pedido.InformarCliente(cliente); var motivoRejeicaoPedido = _pedidoService.IsPedidoValido(pedido); if (!String.IsNullOrEmpty(_pedidoService.IsPedidoValido(pedido))) { return(BadRequest($"Pedido rejeitado: {motivoRejeicaoPedido}")); } bool pedidoInserido = await _pedidoService.Insert(pedido); if (!pedidoInserido) { return(BadRequest()); } using (HttpClient client = new HttpClient()) { var body = new AdicionarPagamentoCartaoViewModel() { PedidoId = pedido.Id, Valor = pedidoViewModel.Valor, NumeroCartao = pedidoViewModel.NumeroCartao, BandeiraCartao = pedidoViewModel.Bandeira, MesVencimentoCartao = pedidoViewModel.MesVencimento, AnoVencimentoCartao = pedidoViewModel.AnoVencimento }; var response = await client.PostAsync("https://localhost/api/pagamento", new StringContent(JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json")); if (!response.IsSuccessStatusCode) { return(BadRequest()); } } return(Ok(pedido)); }
public async Task Adicionar_NovoPedido_DeveRetornarComSucesso() { // Arrange var pedidoInfo = new AdicionarPedidoViewModel { Peso = 10 }; await _testsFixture.RealizarLoginApi(); _testsFixture.Client.AtribuirToken(_testsFixture.UsuarioToken); // Act var postResponse = await _testsFixture.Client.PostAsync("api/pedido", new StringContent(JsonConvert.SerializeObject(pedidoInfo), Encoding.UTF8, "application/json")); // Assert postResponse.EnsureSuccessStatusCode(); }
public async Task <IActionResult> AdicionarPedido(AdicionarPedidoViewModel pedidoViewModel) { var user = await _usuarioQueries.ObterPorNome(pedidoViewModel.usuario); if (user == null) { return(BadRequest()); } var cliente = await _clienteQueries.ObterPorId(user.ClienteId); var retorno = await _mediator.EnviarComando(new AdicionarPedidoCommand(cliente.Id, pedidoViewModel.Valor, pedidoViewModel.Peso, DateTime.Now, pedidoViewModel.Bandeira, pedidoViewModel.NumeroCartao, pedidoViewModel.MesVencimento, pedidoViewModel.AnoVencimento)); if (!retorno) { return(BadRequest()); } return(Ok()); }