public void Add(PedidoDto dto)
        {
            var entity = new PedidoEntity(dto.CodigoCliente);

            foreach (var item in dto.Itens)
                entity.Itens.Add(
                    new PedidoItemEntity(
                        entity,
                        item.CodigoProduto,
                        item.Preco,
                        item.Quantidade));

            _pedidoRepository.Add(entity);
        }
        public void Update(PedidoDto dto)
        {
            var entity = _pedidoRepository.GetByCodigo(dto.Codigo);

            foreach (var item in dto.Itens)
                entity.Itens.Add(
                    new PedidoItemEntity(
                        entity,
                        item.CodigoProduto,
                        item.Preco,
                        item.Quantidade,
                        item.Codigo));

            _pedidoRepository.Update(entity);
        }
        public static PedidoDto ToDto(this PedidoEntity entity)
        {
            if (entity == null) return null;

            var pedidoDto = new PedidoDto
            {
                Codigo = entity.Codigo,
                CodigoCliente = entity.CodigoCliente,
                DataEntrada = entity.DataEntrada,
                Total = entity.Total
            };

            foreach (var item in entity.Itens)
                pedidoDto.Itens.Add(item.ToDto());

            return pedidoDto;
        }
 public IHttpActionResult Post(PedidoDto dto)
 {
     try
     {
         _pedidoApplicationService.Add(dto);
         return Ok(dto);
     }
     catch (ApplicationException ex)
     {
         return BadRequest(ex.Message);
     }
 }