protected override void OnPrepareTransactScope(UpvotePublicacaoCommand command) { Usuario usuario = _usuarioRepository.Find(_serviceContext.UsuarioAtualId); Publicacao publicacao = _publicacaoRepository.Find(command.Publicacao.Id); PublicacaoUpvote upvoteExistente = _publicacaoUpvoteRepository.PodeUpvote(publicacao, usuario); if (upvoteExistente != null) { publicacao.Downvote(); _publicacaoUpvoteRepository.Delete(upvoteExistente); return; } // Excluir downvote caso exista no momento do upvote PublicacaoDownvote downvoteExistente = _publicacaoDownvoteRepository.PodeDownvote(publicacao, usuario); if (downvoteExistente != null) { publicacao.Upvote(); _publicacaoDownvoteRepository.Delete(downvoteExistente); } publicacao.Upvote(); PublicacaoUpvote publicacaoUpvote = new PublicacaoUpvote(publicacao, usuario); _publicacaoUpvoteRepository.Save(publicacaoUpvote); }
protected override void OnPrepareTransactScope(InativarPublicacaoCommand command) { Publicacao publicacao = _publicacaoRepository.Find(command.Publicacao.Id); publicacao.Inativar(); _publicacaoRepository.Update(publicacao); }