public async override Task <CommandResult> HandleCommand(InserirEditarProdutoCommand command)
        {
            var produto = new Model.Produto(command.Descricao, command.Valor);

            if (!command.Id.HasValue)
            {
                produto.SetId(new Guid());
                await this.produtoWriteRepository.InsertAsync(produto);
            }
            else
            {
                /*
                 * var produtoEdit = await this.produtoWriteRepository.FindByIdAsync(command.Id.Value);
                 * produtoEdit.Atualizar(produto.Nome);
                 *
                 * await this.produtoWriteRepository.UpdateAsync(produtoEdit);
                 * produto = produtoEdit;*/
            }

            var dto = mapper.Map <ProdutoDto>(produto);

            HandleEntity(produto);

            return(new CommandResult(true, dto, "Produto cadastrada com sucesso."));
        }
 public UsuarioProduto(Usuario usuario, Model.Produto produto) : this()
 {
     this.Usuario   = usuario;
     this.Produto   = produto;
     this.UsuarioId = usuario.Id;
     this.ProdutoId = produto.Id;
 }