public void SolicitarCarona(Colaborador caroneiro) { ValidarOfertante(); ValidarVagasDisponiveis(); caroneiro.ValidarArgumentoNulo(); if (EstaBloqueado()) { throw new CaronaBloqueadaException(); } if (caroneiro.EstaBloqueado()) { throw new ColaboradorBloqueadoException("Colaborador sem permissão para solicitar carona."); } if (caroneiro.Equals(Ofertante)) { throw new OfertanteComoCaroneiroException("Não é permitido o próprio ofertante ocupar vaga na própria carona."); } if (ExisteCaroneiro(caroneiro)) { throw new CaroneiroJaInclusoNaCaronaException(); } caroneiro.Validar(); Caroneiros.Add(new CaronaCaroneiro(this, caroneiro)); }
private StatusCarona AlterarStatusCarona(Colaborador caroneiro, StatusCarona status) { ValidarOfertante(); caroneiro.ValidarArgumentoNulo(); if (!ExisteCaroneiro(caroneiro)) { throw new CaroneiroNaoEncontradoException(); } caroneiro.Validar(); Caroneiros.Where(cc => cc.Caroneiro.Equals(caroneiro)).Select(cc => cc.StatusCarona = status).ToList(); return(ObterPorCaroneiro(caroneiro).StatusCarona); }