public void ShowPotentialDonors(Patients patient, int numberOfDonors) { List <Donors> potentialDonors = patientsDAO.FindCompatibleDonors(patient); potentialDonors = potentialDonors.OrderBy(d => d.BloodGroup).Take(numberOfDonors).ToList(); Console.WriteLine($"Here are all the donors compatible with your blood group {patient.BloodGroup} and their phone numbers."); for (int i = 0; i < potentialDonors.Count; i++) { Console.WriteLine($"{i + 1}. {potentialDonors[i].Name} {potentialDonors[i].PhoneNumber}"); } Console.WriteLine(); Console.Write("Pick the number of donor you want blood from: "); int donorIndex = 0; do { donorIndex = int.Parse(Console.ReadLine()); } while (donorIndex <= 0 && donorIndex > numberOfDonors); Donors donatingDonor = potentialDonors[donorIndex - 1]; donorsDAO.TransfuseBlood(donatingDonor, patient); Console.WriteLine($"You successfully received blood from {donatingDonor.Name}. You can call him to thank."); Console.WriteLine($"We hope your {patient.Diagnose} will be cured. Your account will be deleted now."); Console.WriteLine("If you receive blood again you can register at any time."); patientsDAO.DeletePatient(patient); Console.WriteLine("Press any key to return to the main menu."); }
public void TransfuseBloodTest() { //Arrange HomeDAO homeDAO = new HomeDAO(); DonorsDAO donorsDAO = new DonorsDAO(); Patient testPatient = new Patient(); testPatient.Name = "test"; string email = "*****@*****.**"; string password = "******"; //Act Donor donor = homeDAO.DonorLogin(email, password); donorsDAO.TransfuseBlood(donor, testPatient); //Assert Assert.AreEqual(testPatient.Name, donor.Status); }
/// <summary>The patient receives the blood from the donor.</summary> /// <param name="patient">The patient.</param> /// <param name="donatingDonor">The donating donor.</param> public void ReceiveBlood(Patient patient, Donor donatingDonor) { donorsDAO.TransfuseBlood(donatingDonor, patient); patientsDAO.DeletePatient(patient); }