internal void Comentar(SubComentario subComentario) { new Contract <Comentario>() .IsNotNull(subComentario, nameof(subComentario), "Não foi informado nenhum SubComentário.") .EnsureContractIsValid(); _subComentarios.Add(subComentario); }
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); }
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); }