/// <summary> /// Initializes the Donor Database Data Grid View with the data from the tables Donor and Blood Type /// It reads from the contents of Donor and BloodType, instantiates a new DisplayDonor object and adds it to the /// DisplayDonor list. /// </summary> private void initializeDonorsDataGridView() { List <DisplayDonor> displayDonor = new List <DisplayDonor>(); List <Donor> donors = Controller <BloodBankEntities, Donor> .GetEntitiesWithIncluded("BloodType").ToList(); List <BloodType> bloodTypes = Controller <BloodBankEntities, BloodType> .GetEntitiesWithIncluded("Donors").ToList(); foreach (Donor donor in donors) { // Getting the string value of the Blood Type name (BloodType1) string displayDonorBloodTypeName = ""; foreach (BloodType bloodType in bloodTypes) { if (bloodType.BloodTypeId == donor.BloodTypeId) { displayDonorBloodTypeName = bloodType.BloodType1; } } // get the donor birthday (DateTime) and get only the date part, ignoring the time portion var donorBirthday = donor.DonorBirthday; var shortDateValue = donorBirthday.ToShortDateString(); // instantiate a DisplayDonor object and set its values to the ones from the DB var completeDonor = new DisplayDonor() { displayDonorFirstName = donor.DonorFirstName, displayDonorLastName = donor.DonorLastName, displayDonorAddress = donor.DonorAddress, displayDonorBirthday = shortDateValue, displayDonorPhoneNumber = donor.DonorPhone, displayDonorBloodType = displayDonorBloodTypeName, }; displayDonor.Add(completeDonor); // adding the new object to the list } // setting up the data grid view columns dataGridViewDonorsDatabase.DataSource = displayDonor; dataGridViewDonorsDatabase.Columns[0].Width = 100; dataGridViewDonorsDatabase.Columns[1].Width = 100; dataGridViewDonorsDatabase.Columns[2].Width = 150; dataGridViewDonorsDatabase.Columns[3].Width = 70; dataGridViewDonorsDatabase.Columns[4].Width = 90; dataGridViewDonorsDatabase.Columns[5].Width = 80; }
/// <summary> /// search donor with firstname, last name and date of birth /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ButtonSearchDonor_Click(object sender, EventArgs e) { List <DisplayDonor> displayDonor = new List <DisplayDonor>(); List <Donor> donors = Controller <BloodBankEntities, Donor> .GetEntitiesWithIncluded("BloodType").ToList(); List <BloodType> bloodTypes = Controller <BloodBankEntities, BloodType> .GetEntitiesWithIncluded("Donors").ToList(); // string variables to store the search text boxes content String searchedDonorFirstName = ""; String SearchedDonorLastName = ""; String SearchedDonorBirthday = ""; try { searchedDonorFirstName = textBoxFirstName.Text; SearchedDonorLastName = textBoxLastName.Text; SearchedDonorBirthday = textBoxDateOfBirth.Text; } catch (Exception ex) { Debug.WriteLine("ouch! " + ex.Message); } // go through all the donors and check if there is any donor names that look like what's begin searched foreach (Donor donor in donors) { if (donor.DonorFirstName.Contains(searchedDonorFirstName) && donor.DonorLastName.Contains(SearchedDonorLastName) && donor.DonorBirthday.ToString().Contains(SearchedDonorBirthday)) { // Getting the string value of the Blood Type name (BloodType1) string displayDonorBloodTypeName = ""; foreach (BloodType bloodType in bloodTypes) { if (bloodType.BloodTypeId == donor.BloodTypeId) { displayDonorBloodTypeName = bloodType.BloodType1; } } // get the donor birthday (DateTime) and get only the date part, ignoring the time portion var donorBirthday = donor.DonorBirthday; var shortDateValue = donorBirthday.ToShortDateString(); // instantiate a DisplayDonor object and set its values to the ones from the DB var completeDonor = new DisplayDonor() { displayDonorFirstName = donor.DonorFirstName, displayDonorLastName = donor.DonorLastName, displayDonorAddress = donor.DonorAddress, displayDonorBirthday = shortDateValue, displayDonorPhoneNumber = donor.DonorPhone, displayDonorBloodType = displayDonorBloodTypeName, }; displayDonor.Add(completeDonor); // adding the new object to the list } } // checks if all the search text boxes are blank if (searchedDonorFirstName == "" && SearchedDonorLastName == "" && SearchedDonorBirthday == "") { MessageBox.Show("One or more search fields are blank."); } else if (displayDonor.Count == 0) // no results returned to the search { MessageBox.Show("This donor is not registered. Please add new donor."); } else { // setting up the data grid view columns dataGridViewSearchResult.DataSource = displayDonor; dataGridViewSearchResult.Columns[0].Width = 100; dataGridViewSearchResult.Columns[1].Width = 100; dataGridViewSearchResult.Columns[2].Width = 150; dataGridViewSearchResult.Columns[3].Width = 70; dataGridViewSearchResult.Columns[4].Width = 90; dataGridViewSearchResult.Columns[5].Width = 80; } }