//metodo que registra a doarção de sangue //public void doarSangue(Doador doador, Receptor recptor){ public bool doarSangue(int codDoador, int codRecptor) { bool deuCerto = false; Doador doador = doadores[codDoador]; Receptor recptor = recptores[codRecptor]; if (doador.podeDoar() && recptor.podeReceber(doador.getTipoSanguineo())) { string registro = $"Doado sangue de {doador.getNome()} do tipo {doador.getTipoSanguineo()} para {recptor.getNome()} do tipo {recptor.getTipoSanguineo()}"; ComunicaoArquivo.escreva(registro, "registro_doacoes.txt"); //doadores.RemoveAt(doadores.IndexOf(doador)); //recptores.RemoveAt(recptores.IndexOf(recptor)); doadores.RemoveAt(doadores.IndexOf(doador)); recptores.RemoveAt(recptores.IndexOf(recptor)); deuCerto = true; } else { string registro = $"Rejeicao: Sangue, idade ou peso do {doador.getNome()} não permite doar para {recptor.getNome()}, cujo o tipo sanguineo do {doador.getNome()} é {doador.getTipoSanguineo()}"; ComunicaoArquivo.escreva(registro, "registro_doacoes.txt"); deuCerto = false; } return(deuCerto); }
public static void Loop() { try{ while (true) { Console.Clear(); Console.WriteLine(clinica.getNome()); Console.WriteLine("----------------------------------"); Console.WriteLine("1 - Cadastrar doador"); Console.WriteLine("2 - Cadastrar receptor"); Console.WriteLine("3 - Realiza doação"); Console.WriteLine("4 - Imprimir recptores na fila"); Console.WriteLine("5 - Imprimir doadores na fila"); Console.WriteLine("6 - Imprimir registros de doações"); Console.WriteLine("7 - Deseja sair\n"); Console.WriteLine("----------------------------------"); Console.Write("Escolha: "); char escolha = char.Parse(Console.ReadLine()); string nome = ""; string tipo = ""; int idade = 0; float altura = 0.0f; int codigoDoador = -999; int codigoRecptor = -999; switch (escolha) { case '1': Console.Clear(); Console.WriteLine("Cadastrando doador:"); Console.WriteLine("----------------------------------"); Console.Write("Digite o nome: "); nome = Console.ReadLine(); Console.Write("Digite o tipo sanguineo(exemplo A+): "); tipo = Console.ReadLine(); Console.Write("Digite a idade: "); idade = int.Parse(Console.ReadLine()); Console.Write("Digite digite a peso: "); altura = float.Parse(Console.ReadLine()); Console.WriteLine("----------------------------------"); clinica.addDoador(new Doador(nome, tipo.ToUpper(), idade, altura)); break; case '2': Console.Clear(); Console.WriteLine("Cadastrando receptor:"); Console.WriteLine("----------------------------------"); Console.Write("Digite o nome: "); nome = Console.ReadLine(); Console.Write("Digite o tipo sanguineo: "); tipo = Console.ReadLine(); clinica.addReceptor(new Receptor(nome, tipo.ToUpper(), 1)); Console.WriteLine("----------------------------------"); break; case '3': Console.Clear(); Console.WriteLine("Para realiaza uma doação é necessario\ndigitar o codigo do recptor e doador\nde acordo com a fila."); Console.WriteLine("----------------------------------"); Console.Write("Digite o codigo doador: "); codigoDoador = int.Parse(Console.ReadLine()); Console.Write("Digite o codigo recptor: "); codigoRecptor = int.Parse(Console.ReadLine()); Console.WriteLine("Doação realizada: " + clinica.doarSangue(codigoDoador, codigoRecptor)); Console.WriteLine("----------------------------------"); Console.WriteLine("Utilize a função 6 para analisar os registros."); Console.Write("Digite entre para voltar."); Console.ReadLine(); break; case '4': Console.Clear(); Console.WriteLine("----------------------------------"); clinica.imprimirCadastros('r'); Console.WriteLine("----------------------------------"); Console.Write("Digite entre para voltar."); Console.ReadLine(); break; case '5': Console.Clear(); Console.WriteLine("----------------------------------"); clinica.imprimirCadastros('d'); Console.WriteLine("----------------------------------"); Console.Write("Digite entre para voltar."); Console.ReadLine(); break; case '6': Console.Clear(); Console.WriteLine("----------------------------------"); ComunicaoArquivo.leia("registro_doacoes.txt"); Console.WriteLine("----------------------------------"); Console.Write("Digite entre para voltar."); Console.ReadLine(); break; case '7': Console.Clear(); Environment.Exit(1); break; default: Console.WriteLine("\n Realize uma escolha."); break; } } } catch (Exception e) { Console.WriteLine("\nErro inesperado: " + e.Message); Console.WriteLine("\nClique 'entre' para renicia o sistema."); Console.ReadLine(); Loop(); } }