示例#1
0
        public async Task <int> GravarPedido(PedidoDto pedido)
        {
            if (await clienteService.ObterClientePorId(pedido.Cliente.Id) != null)
            {
                var listaDeItens = new List <ItemPedido>();
                foreach (var item in pedido.ItensDoPedido)
                {
                    listaDeItens.Add(new ItemPedido(item.Produto.Id, item.Quantidade, item.PedidoId));
                }
                var pedidoModel = new Pedido(pedido.Id, pedido.DataDoPedido, pedido.ValorDoPedido, pedido.Cliente.Id, listaDeItens);
                pedidoModel.AdicionarNumeroDoPedido();
                return(await pedidoRepository.GravarPedido(pedidoModel));
            }
            else
            {
                var clienteId = await clienteService.AdicionarCliente(pedido.Cliente);

                var listaDeItens = new List <ItemPedido>();
                foreach (var item in pedido.ItensDoPedido)
                {
                    listaDeItens.Add(new ItemPedido(item.Produto.Id, item.Quantidade, item.PedidoId));
                }
                var pedidoContrutor = new Pedido(pedido.Id, pedido.DataDoPedido, pedido.ValorDoPedido, clienteId, listaDeItens);
                pedidoContrutor.AdicionarNumeroDoPedido();
                return(await pedidoRepository.GravarPedido(pedidoContrutor));
            }
        }
示例#2
0
        private void btnModPedido_Click(object sender, EventArgs e)
        {
            bool n = dgvPedidos.CurrentRow.Selected;

            if (n)
            {
                Pedido p         = new Pedido();
                int    id        = int.Parse(dgvPedidos.Rows[dgvPedidos.CurrentRow.Index].Cells[0].Value.ToString());
                int    facturado = int.Parse(p.getGestor().getUnString("select facturado from pedidos where id_pedido = " + id));
                if (facturado == 0)
                {
                    PedidoDto pedidoDto = new PedidoDto(
                        dgvPedidos.Rows[dgvPedidos.CurrentRow.Index].Cells[0].Value.ToString(),
                        dgvPedidos.Rows[dgvPedidos.CurrentRow.Index].Cells[1].Value.ToString(),
                        dgvPedidos.Rows[dgvPedidos.CurrentRow.Index].Cells[2].Value.ToString(),
                        dgvPedidos.Rows[dgvPedidos.CurrentRow.Index].Cells[3].Value.ToString(),
                        dgvPedidos.Rows[dgvPedidos.CurrentRow.Index].Cells[4].Value.ToString(),
                        dgvPedidos.Rows[dgvPedidos.CurrentRow.Index].Cells[5].Value.ToString(),
                        dgvPedidos.Rows[dgvPedidos.CurrentRow.Index].Cells[6].Value.ToString()
                        );
                    ModificaPedido mod = new ModificaPedido(this, pedidoDto);
                    this.Hide();
                    mod.ShowDialog();
                }
                else
                {
                    MessageBox.Show("Un pedido que ya se ha dado la cuenta no se puede modificar", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            else
            {
                MessageBox.Show("Error, Selecciona el pedido a modificar", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#3
0
        public void PedidoSemUsuarioComDadosEntrega()
        {
            List <ItemPedidoDto> itens = new List <ItemPedidoDto>();

            itens.Add(new ItemPedidoDto {
                IdProduto1 = 1, IdProduto2 = 2
            });

            var enderecoDto = new EnderecoDto
            {
                Logradouro  = "Rua da Silva",
                Numero      = "209",
                Complemento = "Casa 10"
            };

            PedidoDto pedido = new PedidoDto
            {
                Itens       = itens,
                enderecoDto = enderecoDto
            };

            var jsonContent   = JsonConvert.SerializeObject(pedido);
            var contentString = new StringContent(jsonContent, Encoding.UTF8,
                                                  "application/json");

            var response = TestHttpClient.PostAsync("api/pedido/enviar",
                                                    contentString).Result;
            var resp = response.Content.ReadAsStringAsync().Result;

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
        }
        public IList <PedidoDto> ListarPedidos()
        {
            var listaPedidos = db.PEDIDOS.Include(a => a.PIZZAS);

            var listaPedidosDto = new List <PedidoDto>();

            foreach (var pedido in listaPedidos)
            {
                var pizza = db.PIZZAS.Include(a => a.SABORES)
                            .Include(b => b.TAMANHOS)
                            .Include(c => c.PIZZA_ADICIONAIS)
                            .First(r => r.ID == pedido.PIZZAID);

                var pedidoDto = new PedidoDto()
                {
                    Identificador   = pedido.ID,
                    Tamanho         = pizza.TAMANHOS.DESCRICAO,
                    Sabor           = pizza.SABORES.DESCRICAO,
                    Personalizacoes = PreencherLista(pizza.PIZZA_ADICIONAIS),
                    TempoPreparo    = pedido.TEMPOPREPARO,
                    ValorTotal      = pedido.VALORTOTAL
                };

                listaPedidosDto.Add(pedidoDto);
            }
            return(listaPedidosDto);
        }
        public MensajeDto ObtenerMensajeEnvio(PedidoDto pedido, DateTime fechaEntrega, double costoEnvio)
        {
            TiempoTranscurridoDto tiempoTranscurridoDto = _tiempoTranscurrido.ObtenerTiempoTranscurrido(fechaEntrega);

            ITiempoTranscurridoHandler tiempoTranscurridoMes    = new TiempoTranscurridoMes();
            ITiempoTranscurridoHandler tiempoTranscurridoDia    = new TiempoTranscurridoDia();
            ITiempoTranscurridoHandler tiempoTranscurridoHora   = new TiempoTranscurridoHora();
            ITiempoTranscurridoHandler tiempoTranscurridoMinuto = new TiempoTranscurridoMinuto();

            tiempoTranscurridoMes.Next  = tiempoTranscurridoDia;
            tiempoTranscurridoDia.Next  = tiempoTranscurridoHora;
            tiempoTranscurridoHora.Next = tiempoTranscurridoMinuto;

            string mensajeTiempoTranscurrido = tiempoTranscurridoMes.ObtenerMensajeTiempoTranscurrido(tiempoTranscurridoDto.TotalTiempoTranscurrido);
            string mensaje = _generadorMensaje.GenerarMensaje(pedido, tiempoTranscurridoDto.EsTiempoPasado, mensajeTiempoTranscurrido, costoEnvio);

            ConsoleColor color = ConsoleColor.Yellow;

            if (tiempoTranscurridoDto.EsTiempoPasado)
            {
                color = ConsoleColor.Green;
            }

            return(new MensajeDto()
            {
                Mensaje = mensaje,
                Color = color
            });
        }
示例#6
0
        public void PedidoSemDadosEntrega()
        {
            List <ItemPedidoDto> itens = new List <ItemPedidoDto>();

            itens.Add(new ItemPedidoDto {
                IdProduto1 = 1, IdProduto2 = 2
            });

            PedidoDto pedido = new PedidoDto {
                Itens = itens
            };

            var jsonContent   = JsonConvert.SerializeObject(pedido);
            var contentString = new StringContent(jsonContent, Encoding.UTF8,
                                                  "application/json");

            var response = TestHttpClient.PostAsync("api/pedido/enviar",
                                                    contentString).Result;
            var resp         = response.Content.ReadAsStringAsync().Result;
            var responseData = JsonConvert.DeserializeObject <ErrorMessage>(resp);

            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);

            Assert.AreEqual("Informar os dados da entrega.",
                            responseData.message);
        }
示例#7
0
        public PedidoDto BuscarIDPedidos(long id)
        {
            using (var context = new KosakoDBEntities())
            {
                var aux = context.Pedidos.FirstOrDefault(x => x.Id == id);

                var aux2 = new PedidoDto
                {
                    Adelanto        = aux.Adelanto,
                    Apellido        = aux.Apellido,
                    Nombre          = aux.Nombre,
                    FechaEntrega    = aux.FechaEntrega,
                    FechaPedido     = aux.FechaPedido,
                    Total           = aux.Total,
                    Id              = aux.Id,
                    Proceso         = aux.Proceso,
                    ClienteId       = aux.ClienteId,
                    Descripcion     = aux.Descripcion,
                    FechaRetiro     = aux.FechaRetirado,
                    Horario         = aux.Horario,
                    DiasHastaRetiro = aux.DiasHastaRetiro,
                    FechaIniciado   = aux.FechaPedido,
                    EstaEliminado   = aux.EstaEliminado
                };
                return(aux2);
            }
        }
示例#8
0
        private void btnDetalles_Click(object sender, EventArgs e)
        {
            bool n = dgvPedidos.CurrentRow.Selected;

            if (n)
            {
                int       id        = int.Parse(dgvPedidos.Rows[dgvPedidos.CurrentRow.Index].Cells[0].Value.ToString());
                PedidoDto pedidoDto = new PedidoDto(
                    dgvPedidos.Rows[dgvPedidos.CurrentRow.Index].Cells[0].Value.ToString(),
                    dgvPedidos.Rows[dgvPedidos.CurrentRow.Index].Cells[1].Value.ToString(),
                    dgvPedidos.Rows[dgvPedidos.CurrentRow.Index].Cells[2].Value.ToString(),
                    dgvPedidos.Rows[dgvPedidos.CurrentRow.Index].Cells[3].Value.ToString(),
                    dgvPedidos.Rows[dgvPedidos.CurrentRow.Index].Cells[4].Value.ToString(),
                    dgvPedidos.Rows[dgvPedidos.CurrentRow.Index].Cells[5].Value.ToString(),
                    dgvPedidos.Rows[dgvPedidos.CurrentRow.Index].Cells[6].Value.ToString()
                    );
                DetallesPedido mod = new DetallesPedido(this, pedidoDto);
                this.Hide();
                mod.ShowDialog();
            }
            else
            {
                MessageBox.Show("Error, Selecciona el pedido a mostrar", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
示例#9
0
        public PedidoDto ValidarFormatoPedido(string pedido)
        {
            string[] arregloPedido = pedido.Split(",".ToCharArray());
            if (arregloPedido.Length < 6)
            {
                throw new FormatException("El texto con los datos del pedido no tiene el formato correcto. (" + pedido + ")");
            }

            string   fecha           = arregloPedido[5].Trim();
            string   distancia       = arregloPedido[2].Trim();
            DateTime fechaPedido     = _convertidorFecha.ConvertirTextoAFecha(fecha);
            double   distanciaPedido = _convertidorDouble.ConvertirTextoADouble(distancia);

            PedidoDto pedidoDto = new PedidoDto()
            {
                Origen     = arregloPedido[0].Trim(),
                Destino    = arregloPedido[1].Trim(),
                Distancia  = distanciaPedido,
                Paqueteria = arregloPedido[3].Trim(),
                Transporte = arregloPedido[4].Trim(),
                Fecha      = fechaPedido
            };

            return(pedidoDto);
        }
示例#10
0
        public long NuevoPedido(PedidoDto pedidoDto)
        {
            using (var context = new KosakoDBEntities())
            {
                var nuevo = new AccesoDatos.Pedido
                {
                    Adelanto        = pedidoDto.Adelanto,
                    Apellido        = pedidoDto.Apellido,
                    Nombre          = pedidoDto.Nombre,
                    FechaEntrega    = pedidoDto.FechaEntrega,
                    FechaPedido     = pedidoDto.FechaPedido,
                    Total           = pedidoDto.Total,
                    Proceso         = pedidoDto.Proceso,
                    ClienteId       = pedidoDto.ClienteId,
                    ApyNom          = $"{pedidoDto.Apellido} {pedidoDto.Nombre}",
                    Descripcion     = pedidoDto.Descripcion,
                    Horario         = pedidoDto.Horario,
                    DiasHastaRetiro = pedidoDto.DiasHastaRetiro,
                };

                context.Pedidos.Add(nuevo);

                context.SaveChanges();

                return(nuevo.Id);
            }
        }
        public void Setup()
        {
            _envioService         = new Mock <IEnvioService>();
            _administradorMensaje = new Mock <IAdministradorMensaje>();
            _rastreoService       = new RastreoService(_envioService.Object, _administradorMensaje.Object);

            _pedido = new PedidoDto()
            {
                Destino    = "Destino",
                Origen     = "Origen",
                Distancia  = 80,
                Paqueteria = "Paqueteria",
                Transporte = "Transporte"
            };

            _paqueteria = new Fedex()
            {
                Nombre         = "Fedex",
                MargenUtilidad = 40
            };

            _transporte = new Barco()
            {
                CostoXKilometro  = 1,
                Nombre           = "Barco",
                VelocidadEntrega = 46
            };
        }
示例#12
0
    public async Task <ActionResult> Post([FromBody] PedidoDto dp)
    {
        try
        {
            var pedido = new Pedido {
                DataPedido = DateTime.Now,
                Usuario    = null
            };

            var newDp = new DetalhePedido
            {
                Pedido     = pedido,
                Produto    = db.Products.FirstOrDefault(c => c.ProductId == Convert.ToInt32(dp.ProdutoId)),
                Quantidade = dp.Quantidade
            };

            db.Add(newDp);
            await db.SaveChangesAsync();//INSERT INTO

            return(Ok());
        }
        catch (Exception e)
        {
            return(View(e));
        }
    }
示例#13
0
        public void Deve_mapear_pedido()
        {
            var produto            = _faker.Random.Word();
            var quantidade         = _faker.Random.Int(0);
            var valor              = _faker.Random.Decimal();
            var cartaoDeCreditoDto = new CartaoDeCreditoDto
            {
                Numero    = _faker.Random.Int(0).ToString(),
                Nome      = _faker.Person.FirstName,
                CVV       = _faker.Random.Int(100, 999).ToString(),
                Expiracao = "03/27"
            };
            var cartaoDeCredito = MapeadorDeCartaoDeCredito.Mapear(cartaoDeCreditoDto);
            var pedidoDto       = new PedidoDto
            {
                Produto            = produto,
                Quantidade         = quantidade,
                Valor              = valor,
                CartaoDeCreditoDto = cartaoDeCreditoDto
            };
            var pedidoEsperado = PedidoBuilder.Novo().ComProduto(produto).ComQuantidade(quantidade).ComValor(valor)
                                 .ComCartaoDeCredito(cartaoDeCredito).Criar();

            var pedidoObtido = MapeadorDePedido.Mapear(pedidoDto);

            pedidoEsperado.ToExpectedObject(ctx => ctx.Ignore(p => p.Id)).ShouldMatch(pedidoObtido);
        }
示例#14
0
        public IHttpActionResult SelecionarPedido(int id)
        {
            if (!db.PEDIDOS.Any(r => r.ID == id))
            {
                return(BadRequest("Pedido informado inválido."));
            }

            var pedido = db.PEDIDOS.Include(a => a.PIZZAS).First(r => r.ID == id);

            var pizza = db.PIZZAS.Include(a => a.SABORES)
                        .Include(b => b.TAMANHOS)
                        .Include(c => c.PIZZA_ADICIONAIS)
                        .First(r => r.ID == pedido.PIZZAID);

            var pedidoDto = new PedidoDto()
            {
                Identificador   = pedido.ID,
                Tamanho         = pizza.TAMANHOS.DESCRICAO,
                Sabor           = pizza.SABORES.DESCRICAO,
                Personalizacoes = PreencherLista(pizza.PIZZA_ADICIONAIS),
                TempoPreparo    = pedido.TEMPOPREPARO,
                ValorTotal      = pedido.VALORTOTAL
            };

            return(Ok(pedidoDto));
        }
示例#15
0
        public void PedidoComUsuarioSemDadosDeEntrega()
        {
            int IdUsuario = CadastrarUsuario();

            List <ItemPedidoDto> itens = new List <ItemPedidoDto>
            {
                new ItemPedidoDto {
                    IdProduto1 = 1, IdProduto2 = 2
                }
            };

            PedidoDto pedido = new PedidoDto
            {
                IdUsuario = IdUsuario,
                Itens     = itens
            };

            var jsonContent   = JsonConvert.SerializeObject(pedido);
            var contentString = new StringContent(jsonContent, Encoding.UTF8,
                                                  "application/json");

            var response = TestHttpClient.PostAsync("api/pedido/enviar",
                                                    contentString).Result;

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
        }
 public DetallesPedido(MostrarPedidos mos, PedidoDto pedidoDto)
 {
     this.mos       = mos;
     this.pedidoDto = pedidoDto;
     InitializeComponent();
     iniTable("and ref_pedido = " + pedidoDto.getId());
 }
        public async Task <Pedido> AdicionarPedido(PedidoDto pedidoDto)
        {
            try
            {
                var cliente = await BuscarClientePorId(pedidoDto.IdCliente);

                var fornecedor = await BuscarFornecedorPorId(pedidoDto.IdFornecedor);

                Pedido pedido = new Pedido();
                pedido.Cliente    = cliente;
                pedido.Fornecedor = fornecedor;

                foreach (int p in pedidoDto.ListItens)
                {
                    var item = await BuscarItenPorId(p);

                    pedido.Itens.Add(item);
                }
                _contexto.Pedido.Add(pedido);
                await _contexto.SaveChangesAsync();

                return(BuscarTodosPedidos().Result.Where(x => x.Cliente.IdCliente == pedidoDto.IdCliente && x.Fornecedor.IdFornecedor == pedidoDto.IdFornecedor).FirstOrDefault());
            }
            catch (Exception)
            {
                throw;
            }
        }
        public ActionResult <Pedido> Cadastrar([FromBody] PedidoDto pedidoDto)
        {
            Retorno retornoPedido;

            Pedido pedido = _mapper.Map <Pedido>(pedidoDto);

            retornoPedido = _pedidoServico.PedidoValido(pedido);

            if (!retornoPedido._sucesso)
            {
                return(BadRequest(retornoPedido));
            }

            bool produtoCadastrado = _pedidoServico.CadastraPedido(pedido);

            if (produtoCadastrado)
            {
                retornoPedido = new Retorno(true);
                retornoPedido.AdicionarMensagemSucesso("Pedido cadastrado com sucesso");
                return(Ok(retornoPedido));
            }

            retornoPedido = new Retorno(false);
            retornoPedido.AdicionarMensagemFalha("Falha ao cadastrar o pedido do cliente");

            return(BadRequest(retornoPedido));
        }
示例#19
0
        public async Task <PedidoDto> Post(PedidoDto pedidoDto)
        {
            var pedido = _mapper.Map <PedidoDto, Pedido>(pedidoDto);

            var cliente = await _unitOfWork.ClienteRepository.Get(pedido.Cliente.Nome, pedido.Cliente.SobreNome);

            if (cliente != null)
            {
                pedido.ClienteId = cliente.ClienteId;

                cliente.Email    = pedidoDto.Cliente.Email;
                cliente.Telefone = pedidoDto.Cliente.Telefone;
                _unitOfWork.ClienteRepository.Update(cliente);

                pedido.Cliente = null;
            }

            var pedidoInserido = await _unitOfWork.PedidoRepository.InsertAsync(pedido);

            _unitOfWork.Save();

            var pedidoDb = await _unitOfWork.PedidoRepository.Get(pedidoInserido.PedidoId);

            var pedidoInseridoDto = _mapper.Map <Pedido, PedidoDto>(pedidoDb);

            return(pedidoInseridoDto);
        }
示例#20
0
        public AgregarProductos(long pedidoId, bool semaforo)
        {
            InitializeComponent();

            productoServicio         = new ProductoServicio();
            producto_vent            = new Producto_Venta_Servicio();
            ventaServicio            = new VentaServicio();
            detalleCajaServicio      = new DetalleCajaServicio();
            cajaServicio             = new CajaServicio();
            clienteServicio          = new ClienteServicio();
            talleServicio            = new TalleServicio();
            pedidoServicio           = new PedidoServicio();
            producto_Dato_Servicio   = new Producto_Dato_Servicio();
            producto_Pedido_Servicio = new Producto_Pedido_Servicio();
            ctaCteServicio           = new CtaCteServicio();

            producto   = new ProductoDto();
            ListaVenta = new List <VentaDto2>();
            ventaDto   = new VentaDto();

            _Semaforo = semaforo;

            _PedidoId  = pedidoId;
            _Pedido    = pedidoServicio.BuscarIDPedidos(pedidoId);
            _clienteId = _Pedido.ClienteId;
            Bandera    = false;

            CargarTalle();
            CargarDatos();
            CargarGrilla(ListaVenta);

            CargarImageEnGeneral();
        }
        public void ValidarFormatoPedido_PedidoFormatoCorrecto_RegresaPedidoDto()
        {
            //Arrange
            string   pedido      = "Ticul,Motul,80,Estafeta,Tren,23-01-2020 12:00:00";
            string   origen      = "Ticul";
            string   destino     = "Motul";
            double   distancia   = 80;
            string   paqueteria  = "Estafeta";
            string   transporte  = "Tren";
            DateTime fechaPedido = new DateTime(2020, 1, 23, 12, 0, 0);

            _convertidorFecha.Setup(s => s.ConvertirTextoAFecha(It.IsAny <string>())).Returns(fechaPedido);;
            _convertidorDouble.Setup(s => s.ConvertirTextoADouble(It.IsAny <string>())).Returns(distancia);

            //Act
            PedidoDto pedidoDto = _validadorFormatoPedido.ValidarFormatoPedido(pedido);

            //Assert
            Assert.AreEqual(origen, pedidoDto.Origen);
            Assert.AreEqual(destino, pedidoDto.Destino);
            Assert.AreEqual(distancia, pedidoDto.Distancia);
            Assert.AreEqual(paqueteria, pedidoDto.Paqueteria);
            Assert.AreEqual(transporte, pedidoDto.Transporte);
            Assert.AreEqual(fechaPedido, pedidoDto.Fecha);
        }
示例#22
0
        public PedidoDto RecuperaPedidoPeloId(int Id)
        {
            List <PedidoDto> pedidos = RecuperaPedidosDaSessao();
            PedidoDto        pedido  = pedidos.Where(p => p.Id == Id).ToList().FirstOrDefault();

            return(pedido);
        }
示例#23
0
        public IHttpActionResult EditarPedido(int contratoId, int pedidoId, [FromBody] PedidoDto pedido)
        {
            try
            {
                if (pedido.ContratoId != contratoId)
                {
                    return(Conflict());
                }
                else if (pedido.PedidoId != pedidoId)
                {
                    return(Conflict());
                }

                var pedidoEditado = _pedidoProcesso.EditarPedido(pedido);
                if (pedidoEditado)
                {
                    return(NoContent());
                }
                else
                {
                    return(NotFound());
                }
            }
            catch (RegraNegocioException e)
            {
                return(Content(HttpStatusCode.PreconditionFailed, e.Serializar()));
            }
            catch (Exception e)
            {
                return(InternalServerError(e));
            }
        }
示例#24
0
        public async Task Deve_salvar_um_evento_de_pedido_criado_ao_criar_pedido()
        {
            var produto            = _faker.Random.Word();
            var quantidade         = _faker.Random.Int(0);
            var valor              = _faker.Random.Decimal();
            var cartaoDeCreditoDto = new CartaoDeCreditoDto
            {
                Numero    = _faker.Random.Int(0).ToString(),
                Nome      = _faker.Person.FirstName,
                CVV       = _faker.Random.Int(100, 999).ToString(),
                Expiracao = "03/27"
            };
            var cartaoDeCredito = MapeadorDeCartaoDeCredito.Mapear(cartaoDeCreditoDto);
            var pedidoDto       = new PedidoDto
            {
                Produto            = produto,
                Quantidade         = quantidade,
                Valor              = valor,
                CartaoDeCreditoDto = cartaoDeCreditoDto
            };
            var pedidoCriado = PedidoBuilder.Novo().ComProduto(produto).ComQuantidade(quantidade).ComValor(valor)
                               .ComCartaoDeCredito(cartaoDeCredito).Criar();
            var eventoEsperado = new PedidoCriadoEvento(pedidoCriado.Id, pedidoCriado.CartaoDeCredito.Nome,
                                                        pedidoCriado.CartaoDeCredito.Numero, pedidoCriado.Produto, pedidoCriado.Valor);

            await _criacaoDePedido.Criar(pedidoDto);

            _eventoRepositorio.Verify(pr => pr.Salvar(It.Is <PedidoCriadoEvento>(evento
                                                                                 => evento.ToExpectedObject(ctx => ctx.Ignore(p => p.Id)).Matches(eventoEsperado))));
        }
示例#25
0
        public async Task Deve_notificar_que_pedido_foi_criado()
        {
            var produto            = _faker.Random.Word();
            var quantidade         = _faker.Random.Int(0);
            var valor              = _faker.Random.Decimal();
            var cartaoDeCreditoDto = new CartaoDeCreditoDto
            {
                Numero    = _faker.Random.Int(0).ToString(),
                Nome      = _faker.Person.FirstName,
                CVV       = _faker.Random.Int(100, 999).ToString(),
                Expiracao = "03/27"
            };
            var pedidoDto = new PedidoDto
            {
                Produto            = produto,
                Quantidade         = quantidade,
                Valor              = valor,
                CartaoDeCreditoDto = cartaoDeCreditoDto
            };

            await _criacaoDePedido.Criar(pedidoDto);

            _mensageria.Verify(m => m.PublishAsync(
                                   It.Is <PedidoCriadoEvento>(p
                                                              => p.Produto == produto && p.Valor == valor && p.NomeDoUsuario == cartaoDeCreditoDto.Nome)));
        }
        public async Task <Pedido> AtualizarPedido(PedidoDto pedidoDto, long id)
        {
            try
            {
                var cliente = await BuscarClientePorId(pedidoDto.IdCliente);

                var fornecedor = await BuscarFornecedorPorId(pedidoDto.IdFornecedor);

                Pedido pedido = new Pedido();
                pedido.Cliente    = cliente;
                pedido.Fornecedor = fornecedor;
                pedido.IdPedido   = id;

                foreach (int p in pedidoDto.ListItens)
                {
                    var item = await BuscarItenPorId(p);

                    pedido.Itens.Add(item);
                }
                _contexto.Pedido.Update(pedido);
                await _contexto.SaveChangesAsync();

                return(pedido);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
示例#27
0
        public void Deve_mapear_nulo_quando_pedido_dto_for_nulo()
        {
            PedidoDto pedidoDtoInvalido = null;

            var pedido = MapeadorDePedido.Mapear(pedidoDtoInvalido);

            Assert.Null(pedido);
        }
        public MensajeDto ObtenerMensajeRastreo(PedidoDto pedido, IPaqueteria paqueteria, ITransporte transporte)
        {
            double   tiempoTraslado = _envioService.CalcularTiempoTraslado(pedido.Distancia, transporte.VelocidadEntrega);
            DateTime fechaEntrega   = _envioService.CalcularFechaEntrega(pedido.Fecha, tiempoTraslado);
            double   costoEnvio     = _envioService.CalcularCostoEnvio(pedido.Distancia, paqueteria.MargenUtilidad, transporte.CostoXKilometro);

            return(_administradorMensaje.ObtenerMensajeEnvio(pedido, fechaEntrega, costoEnvio));
        }
示例#29
0
        public PedidoDto NovoPedido(PedidoDto dto)
        {
            var pedido = new Pedido(dto.GarcomId, dto.ClienteDocumento, dto.ClienteNome);

            pedidoRepository.Create(pedido);

            return(Mapper.Map <PedidoDto>(pedido));
        }
示例#30
0
        public async Task <PedidoDto> Criar(PedidoDto dto)
        {
            var criarPedidoCommand = MapperModelAndDto.Map <CriarPedidoCommand>(dto);

            dto.IDPedido = await Mediator.Send(criarPedidoCommand);

            return(dto);
        }