public void RemoverMembro(Membro membro) { membro.Validate(); if (!MembroPertenceGrupo(membro)) { throw new DomainException($"Não é possível remover o membro pois ele não faz parte do grupo '{NomeGrupo}'."); } _membros.Remove(membro); QuantidadeMembros--; }
public void AdicionarMembro(Membro membro) { membro.Validate(); if (GrupoEstaCheio()) { throw new DomainException($"Não é possível adicionar um novo membro ao grupo '{NomeGrupo}' pois o número máximo ({NumeroMaximoMembros}) de participantes do grupo foi atingido."); } if (MembroPertenceGrupo(membro)) { throw new DomainException($"Não é possível adicionar o novo membro pois ele já faz parte do grupo '{NomeGrupo}'."); } membro.AssociarGrupo(Id); _membros.Add(membro); QuantidadeMembros++; }
public bool MembroPertenceGrupo(Membro membro) => _membros.Any(u => u.Equals(membro));