예제 #1
0
        internal void Comentar(SubComentario subComentario)
        {
            new Contract <Comentario>()
            .IsNotNull(subComentario, nameof(subComentario), "Não foi informado nenhum SubComentário.")
            .EnsureContractIsValid();

            _subComentarios.Add(subComentario);
        }
예제 #2
0
        internal void RemoverComentario(Guid subComentarioId, Guid usuarioId)
        {
            SubComentario subComentarioQueSeraRemovido = _subComentarios.FirstOrDefault(c => c.Id == subComentarioId);

            new Contract <Comentario>()
            .IsNotNull(subComentarioQueSeraRemovido, nameof(subComentarioQueSeraRemovido), "O SubComentário informado não existe.")
            .EnsureContractIsValid()
            .AreEquals(subComentarioQueSeraRemovido.UsuarioId,
                       usuarioId,
                       nameof(usuarioId),
                       "O SubComentário apenas pode ser removido pelo autor do comentário.")
            .EnsureContractIsValid <Comentario, DomainInvalidOperationException>();

            _subComentarios.Remove(subComentarioQueSeraRemovido);
        }
예제 #3
0
        internal void EditarSubComentario(Guid subComentarioId, Guid usuarioModificacaoId, string comentario)
        {
            SubComentario subComentarioQueSeraEditado = _subComentarios.FirstOrDefault(c => c.Id == subComentarioId);

            new Contract <Comentario>()
            .IsNotNull(subComentarioQueSeraEditado, nameof(subComentarioQueSeraEditado), "O SubComentário informado não existe.")
            .EnsureContractIsValid()
            .AreEquals(subComentarioQueSeraEditado.UsuarioId,
                       usuarioModificacaoId,
                       nameof(usuarioModificacaoId),
                       "O subComentário apenas pode ser editado pelo autor do SubComentário.")
            .EnsureContractIsValid <Comentario, DomainInvalidOperationException>();

            subComentarioQueSeraEditado.Editar(comentario);
        }