示例#1
0
        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);
            }
        }
示例#2
0
        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);
            }
        }