public bool addDoador(Doador d) { try { if (d != null && d.podeDoar() && TiposSangues.validaTipo(d.getSangue()) && validarId(d.getId())) { doadores.Add(d); DadoDoador.SalvarDado(d); return(true); } else { throw new ClinicaException("Doador não pode realizar doações"); } } catch (Exception e) { Console.WriteLine(e.Message); return(false); } }
public bool doarSangue(string idPaciente, string idDoador) { try { Doador doador = doadores.Find(x => x.getId() == idDoador); Paciente paciente = pacientes.Find(x => x.getId() == idPaciente); if (doador != null) { if (paciente != null) { if (Paciente.compatibilidadeDeSangue(doador.getSangue(), paciente.getSangue())) { Console.WriteLine("\nDoador: " + doador.getNome()); Console.WriteLine("Paciente: " + paciente.getNome()); doadores.Remove(doador); pacientes.Remove(paciente); string texto = $"Sangue do {doador.getNome()}(Tipo: {doador.getSangue()}) doado para {paciente.getNome()}(tipo: {paciente.getSangue()})"; DadoDoacao.SalvarDado(paciente, doador, texto); return(true); } else { throw new ClinicaException("Sangue incompatíveis!"); } } else { throw new ClinicaException("Codigo do paciente invalido!"); } } else { throw new ClinicaException("Codigo do doador invalido!"); } } catch (Exception e) { Console.WriteLine("Doaçao: " + e.Message); return(false); } }