public static LiveOrganMatching getMatchByID(string id) { LiveOrganMatching m = new LiveOrganMatching(); try { SqlCommand command = new SqlCommand("Select * from organMatchingLive where liveOrganMatch = @id"); command.Parameters.AddWithValue("@id", id); command.Connection = connection; connection.Open(); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { m.ID = reader["liveOrganMatch"].ToString(); m.LiveDonor = LiveDonorDB.getLiveDonorbyID(reader["ldonorID"].ToString()); m.Recipient = OrganRecipientDB.getRecipientByID(reader["OrganWlID"].ToString()); m.MatchScore = Convert.ToInt32(reader["matchScore"]); m.Comments = reader["comments"].ToString(); m.Status = reader["status"].ToString(); m.Distance = Convert.ToInt32(reader["distance"]); } reader.Close(); } finally { connection.Close(); } return(m); }
public static int insertMatch(LiveOrganMatching m) { int num = -1; try { SqlCommand command = new SqlCommand("insert into organMatchingLive values(@ldonorID, @OrganWlID, @matchScore, @comments, @status, @distance)"); command.Parameters.AddWithValue("@ldonorID", m.LiveDonor.ldonorID); command.Parameters.AddWithValue("@OrganWlID", m.Recipient.ID); command.Parameters.AddWithValue("@matchScore", m.MatchScore); command.Parameters.AddWithValue("@comments", m.Comments); command.Parameters.AddWithValue("@status", m.Status); command.Parameters.AddWithValue("@distance", m.Distance); command.Connection = connection; connection.Open(); if (command.ExecuteNonQuery() > 0) { num = 1; } } finally { connection.Close(); } return(num); }
public static List <LiveOrganMatching> getAllMatches() { List <LiveOrganMatching> matches = new List <LiveOrganMatching>(); try { SqlCommand command = new SqlCommand("Select * from organMatchingLive"); command.Connection = connection; connection.Open(); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { LiveOrganMatching m = new LiveOrganMatching(); m.ID = reader["liveOrganMatch"].ToString(); m.LiveDonor = LiveDonorDB.getLiveDonorbyID(reader["ldonorID"].ToString()); m.Recipient = OrganRecipientDB.getRecipientByID(reader["OrganWlID"].ToString()); m.MatchScore = Convert.ToInt32(reader["matchScore"]); m.Comments = reader["comments"].ToString(); m.Status = reader["status"].ToString(); m.Distance = Convert.ToInt32(reader["distance"]); matches.Add(m); } reader.Close(); } finally { connection.Close(); } return(matches); }
protected void gvMatch_SelectedIndexChanged(object sender, EventArgs e) { List <LiveOrganMatching> lom = LiveOrganMatchingDB.getAllMatches(); List <LiveOrganMatching> lomshow = new List <LiveOrganMatching>(); Users u = UsersDB.getUserbyEmail(Session["email"].ToString()); foreach (LiveOrganMatching l in lom) { if (l.LiveDonor.userid.UserId == u.UserId && l.Status == "current match") { l.Distance = l.Distance / 60; lomshow.Add(l); } } if (lomshow.Count == 0) { lblmatchingF.Text = "Sorry! We haven't found any matching for you right now."; panelmatching.Visible = false; } else { panelmatching.Visible = true; LiveOrganMatching lo = lomshow[gvMatch.PageSize * gvMatch.PageIndex + gvMatch.SelectedIndex]; Session["chat"] = null; Session["echat"] = lo.Recipient.Establishment.ID; Server.Transfer("IndividualChatUU.aspx"); } }
public static int updateMatch(LiveOrganMatching m) { int num = -1; try { SqlCommand command = new SqlCommand("update organMatchingLive set status=@status where liveOrganMatch=@id"); command.Parameters.AddWithValue("@status", m.Status); command.Parameters.AddWithValue("@id", m.ID); command.Connection = connection; connection.Open(); if (command.ExecuteNonQuery() > 0) { num = 1; } } finally { connection.Close(); } return(num); }
protected void btnDSubmit_Click(object sender, EventArgs e) { if (Convert.ToInt32(tbxDPhone.Text) <= 0) { lblDOutput.Text = "Phone number is in incorrect format"; return; } else { string ogtype; string Dname = tbxDoctor.Text; int Dphone = Convert.ToInt32(tbxDPhone.Text); string Demail = TbxDEmail.Text; string Daddress = tbxDAddress.Text; if (ddlOrgan.SelectedIndex == 0) { lblOrgan.Visible = true; return; } else { ogtype = ddlOrgan.SelectedValue; } if (tbxComment.Text == "") { comment = "-"; } else { comment = tbxComment.Text; } Users u = UsersDB.getUserbyEmail(Session["email"].ToString()); //add code for finding match here LiveDonor ld = new LiveDonor(u, ogtype, comment, "not allotted", Dname, Dphone, Daddress, Demail); int num = LiveDonorDB.insertLiveDonor(ld); if (num != -1) { LiveDonor tLiveDonor; List <LiveDonor> tDonorList = LiveDonorDB.getLiveDonorbyuserID(u.userId); tLiveDonor = tDonorList[0]; foreach (LiveDonor tld in tDonorList) { if (tld.status == "not allotted") { tLiveDonor = tld; } } List <OrganRecipient> allRecievers = OrganRecipientDB.getAllRecipients(); bool f = false; foreach (OrganRecipient r in allRecievers) { int y = 0; String bt1 = u.bloodtype; String bt2 = r.Bloodgroup; if ((bt1 == "A+" || bt1 == "A-") && (bt2 == "A+" || bt2 == "A-" || bt2 == "AB+" || bt2 == "AB-")) { y = 1; } else if ((bt1 == "B+" || bt1 == "B-") && (bt2 == "B+" || bt2 == "B-" || bt2 == "AB+" || bt2 == "AB-")) { y = 1; } else if ((bt1 == "AB+" || bt1 == "AB-") && (bt2 == "AB+" || bt2 == "AB-")) { y = 1; } else if ((bt1 == "O+" || bt1 == "O-") && (bt2 == "A+" || bt2 == "A-" || bt2 == "AB+" || bt2 == "AB-" || bt2 == "B+" || bt2 == "B-" || bt2 == "O+" || bt2 == "O-")) { y = 1; } if (y == 1 && tLiveDonor.OrganType == r.Organrequired && r.Status == "waiting") { float d = getDistance(u.address, r.Establishment.Address); int score = 0; int d1 = Convert.ToInt32(d); d = d / 3600; int wTimeScore = 0, distanceScore = 0; if (d < 5) { distanceScore = 5; } else if (d < 15) { distanceScore = 4; } else if (d < 25) { distanceScore = 3; } else if (d < 35) { distanceScore = 2; } else if (d < 45) { distanceScore = 1; } else { distanceScore = 0; } double days = (DateTime.Today - r.Addedon).TotalDays; if (days < 180) { wTimeScore = 1; } else if (days < 365) { wTimeScore = 2; } else if (days < 1095) { wTimeScore = 3; } else if (days < 1825) { wTimeScore = 4; } else { wTimeScore = 5; } score = r.Urgency * 3 + distanceScore + wTimeScore; LiveOrganMatching match = new LiveOrganMatching(); match.LiveDonor = tLiveDonor; match.MatchScore = score; match.Recipient = r; match.Status = "pending"; match.Comments = "NIL"; match.Distance = d1; LiveOrganMatchingDB.insertMatch(match); f = true; } } if (f == true) { List <LiveOrganMatching> liveMatches = LiveOrganMatchingDB.getAllMatches(); List <LiveOrganMatching> liveMatchesCurr = new List <LiveOrganMatching>(); foreach (LiveOrganMatching LOM1 in liveMatches) { if (LOM1.LiveDonor.LdonorID == tLiveDonor.LdonorID) { liveMatchesCurr.Add(LOM1); } } LiveOrganMatching tempLOM = liveMatchesCurr[0]; foreach (LiveOrganMatching LOM in liveMatchesCurr) { if (LOM.MatchScore > tempLOM.MatchScore) { tempLOM = LOM; } } tempLOM.Status = "current match"; LiveOrganMatchingDB.updateMatch(tempLOM); tLiveDonor.status = "allotted"; LiveDonorDB.updateLiveDonor(tLiveDonor); tempLOM.Recipient.Status = "allotted"; OrganRecipientDB.updateOrganRecipient(tempLOM.Recipient); } PanelRegisterDonor.Visible = false; Server.Transfer("HistoryOrgan.aspx"); } else { PanelRegisterDonor.Visible = true; lblDOutput.Text = "Registration Fail! Please Try Again."; return; } } }
protected void gvRecipients_SelectedIndexChanged(object sender, EventArgs e) { List <OrganRecipient> ourRecipients = new List <OrganRecipient>(); List <OrganRecipient> allRecipients = OrganRecipientDB.getAllRecipients(); Establishment currentEstab = (Establishment)Session["establishment"]; foreach (OrganRecipient r in allRecipients) { if (r.Establishment.ID == currentEstab.ID && (r.Status == "waiting" || r.Status == "allotted")) { ourRecipients.Add(r); } } OrganRecipient currentRecipient = ourRecipients[gvRecipients.PageSize * gvRecipients.PageIndex + gvRecipients.SelectedIndex]; DeceasedOrganMatching deadOrgan = new DeceasedOrganMatching(); LiveOrganMatching liveOrgan = new LiveOrganMatching(); int matchFound = 0; List <DeceasedOrganMatching> allDeadMatches = DeceasedOrganMatchingDB.getAllMatches(); List <LiveOrganMatching> allLiveMatches = LiveOrganMatchingDB.getAllMatches(); foreach (DeceasedOrganMatching d in allDeadMatches) { if (d.Recipient.ID == currentRecipient.ID && d.Status == "current match") { matchFound = 1; deadOrgan = d; } } foreach (LiveOrganMatching l in allLiveMatches) { if (l.Recipient.ID == currentRecipient.ID && l.Status == "current match") { matchFound = 2; liveOrgan = l; } } if (matchFound == 0) { lblOutput.Text = "Sorry no matches yet!"; pnlMatch.Visible = false; } else if (matchFound == 1) { lblOutput.Text = ""; try { pnlMatch.Visible = true; lblMedical.Text = deadOrgan.DeceasedDonor.Establishment.Name; Session["rwEst"] = deadOrgan.DeceasedDonor.Establishment.ID; Session["ldID"] = null; Session["echat"] = null; lblContact.Text = deadOrgan.DeceasedDonor.Establishment.Phone + " / " + deadOrgan.DeceasedDonor.Establishment.Email; lblBloodType.Text = deadOrgan.DeceasedDonor.Bloodgroup; lblHeightWeight.Text = deadOrgan.DeceasedDonor.Donorheight + " / " + deadOrgan.DeceasedDonor.Donorweight; lblComments.Text = deadOrgan.DeceasedDonor.Comments; lblMatchScore.Text = Convert.ToString(deadOrgan.MatchScore); tbxMatchComments.Text = deadOrgan.Comments; lblDistance.Text = Convert.ToString(deadOrgan.Distance); } catch { lblOutput.Text = "Please Check The Entered Values"; } } else if (matchFound == 2) { lblOutput.Text = ""; try { pnlMatch.Visible = true; lblMedical.Text = liveOrgan.LiveDonor.doctorName; Session["rwEst"] = null; Session["ldID"] = liveOrgan.LiveDonor.Userid.userId; Session["echat"] = null; lblContact.Text = liveOrgan.LiveDonor.DoctorNumber + " / " + liveOrgan.LiveDonor.DoctorEmail; lblBloodType.Text = liveOrgan.LiveDonor.Userid.BloodType; lblHeightWeight.Text = liveOrgan.LiveDonor.userid.Height + " / " + liveOrgan.LiveDonor.Userid.Weight; lblComments.Text = liveOrgan.LiveDonor.comments; lblMatchScore.Text = Convert.ToString(liveOrgan.MatchScore); tbxMatchComments.Text = liveOrgan.Comments; lblDistance.Text = Convert.ToString(liveOrgan.Distance); } catch { lblOutput.Text = "Please Check The Entered Values"; } } }
protected void btnDecline_Click(object sender, EventArgs e) { List <OrganRecipient> ourRecipients = new List <OrganRecipient>(); List <OrganRecipient> allRecipients = OrganRecipientDB.getAllRecipients(); Establishment currentEstab = (Establishment)Session["establishment"]; foreach (OrganRecipient r in allRecipients) { if (r.Establishment.ID == currentEstab.ID && (r.Status == "waiting" || r.Status == "allotted")) { ourRecipients.Add(r); } } OrganRecipient currentRecipient = ourRecipients[gvRecipients.PageSize * gvRecipients.PageIndex + gvRecipients.SelectedIndex]; DeceasedOrganMatching deadOrgan = new DeceasedOrganMatching(); LiveOrganMatching liveOrgan = new LiveOrganMatching(); int matchFound = 0; List <DeceasedOrganMatching> allDeadMatches = DeceasedOrganMatchingDB.getAllMatches(); List <LiveOrganMatching> allLiveMatches = LiveOrganMatchingDB.getAllMatches(); List <DeceasedOrganMatching> allDeadMatchesCurr = new List <DeceasedOrganMatching>(); List <LiveOrganMatching> allLiveMatchesCurr = new List <LiveOrganMatching>(); bool checkMatchD = false; bool checkMatchL = false; foreach (DeceasedOrganMatching d in allDeadMatches) { if (d.Recipient.ID == currentRecipient.ID && d.Status == "current match") { matchFound = 1; deadOrgan = d; } else if (d.Recipient.ID == currentRecipient.ID && d.Status == "pending" && d.DeceasedDonor.Status == "not allotted") { allDeadMatchesCurr.Add(d); checkMatchD = true; } } foreach (LiveOrganMatching l in allLiveMatches) { if (l.Recipient.ID == currentRecipient.ID && l.Status == "current match") { matchFound = 2; liveOrgan = l; } else if (l.Recipient.ID == currentRecipient.ID && l.Status == "pending" && l.LiveDonor.status == "not allotted") { allLiveMatchesCurr.Add(l); checkMatchL = true; } } if (matchFound == 0) { lblOutput.Text = "Sorry no matches yet!"; } else if (matchFound == 2) { // tempCurrentMatch = deadOrgan.ID; liveOrgan.Status = "not possible"; LiveOrganMatchingDB.updateMatch(liveOrgan); } else if (matchFound == 1) { // tempCurrentMatch = liveOrgan.ID; deadOrgan.Status = "not possible"; DeceasedOrganMatchingDB.updateMatch(deadOrgan); } LiveOrganMatching tempLDM = new LiveOrganMatching(); if (checkMatchL == true) { tempLDM = allLiveMatchesCurr[0]; foreach (LiveOrganMatching ldm in allLiveMatchesCurr) { if (ldm.MatchScore > tempLDM.MatchScore) { tempLDM = ldm; } } } DeceasedOrganMatching tempDOM = new DeceasedOrganMatching(); if (checkMatchD == true) { tempDOM = allDeadMatchesCurr[0]; foreach (DeceasedOrganMatching dom in allDeadMatchesCurr) { if (dom.MatchScore > tempDOM.MatchScore) { tempDOM = dom; } } } if (checkMatchD == true && checkMatchL == true) { if (tempDOM.MatchScore < tempLDM.MatchScore) { tempLDM.Status = "current match"; LiveOrganMatchingDB.updateMatch(tempLDM); LiveDonor tempItem = LiveDonorDB.getLiveDonorbyID(tempLDM.LiveDonor.LdonorID); tempItem.status = "allotted"; LiveDonorDB.updateLiveDonor(tempItem); } else { tempDOM.Status = "current match"; DeceasedOrganMatchingDB.updateMatch(tempDOM); DeceasedDonor tempItem = DeceasedDonorDB.getDonorByID(tempDOM.DeceasedDonor.ID); tempItem.Status = "allotted"; DeceasedDonorDB.updateDeceasedDonor(tempItem); } } else if (checkMatchD == true && checkMatchL == false) { tempDOM.Status = "current match"; DeceasedOrganMatchingDB.updateMatch(tempDOM); DeceasedDonor tempItem = DeceasedDonorDB.getDonorByID(tempDOM.DeceasedDonor.ID); tempItem.Status = "allotted"; DeceasedDonorDB.updateDeceasedDonor(tempItem); } else if (checkMatchL == true && checkMatchD == false) { tempLDM.Status = "current match"; LiveOrganMatchingDB.updateMatch(tempLDM); LiveDonor tempItem = LiveDonorDB.getLiveDonorbyID(tempLDM.LiveDonor.LdonorID); tempItem.status = "allotted"; LiveDonorDB.updateLiveDonor(tempItem); } else { currentRecipient.Status = "waiting"; OrganRecipientDB.updateOrganRecipient(currentRecipient); } Label1.Text = "Successfully completed"; string MyAccountUrl = "RecipientWaitingList.aspx"; Page.Header.Controls.Add(new LiteralControl(string.Format(@" <META http-equiv='REFRESH' content=2;url={0}> ", MyAccountUrl))); }
protected void btnAccept_Click(object sender, EventArgs e) { List <OrganRecipient> ourRecipients = new List <OrganRecipient>(); List <OrganRecipient> allRecipients = OrganRecipientDB.getAllRecipients(); Establishment currentEstab = (Establishment)Session["establishment"]; foreach (OrganRecipient r in allRecipients) { if (r.Establishment.ID == currentEstab.ID && (r.Status == "waiting" || r.Status == "allotted")) { ourRecipients.Add(r); } } OrganRecipient currentRecipient = ourRecipients[gvRecipients.PageSize * gvRecipients.PageIndex + gvRecipients.SelectedIndex]; DeceasedOrganMatching deadOrgan = new DeceasedOrganMatching(); LiveOrganMatching liveOrgan = new LiveOrganMatching(); int matchFound = 0; List <DeceasedOrganMatching> allDeadMatches = DeceasedOrganMatchingDB.getAllMatches(); List <LiveOrganMatching> allLiveMatches = LiveOrganMatchingDB.getAllMatches(); foreach (DeceasedOrganMatching d in allDeadMatches) { if (d.Recipient.ID == currentRecipient.ID && d.Status == "current match") { matchFound = 1; deadOrgan = d; } } foreach (LiveOrganMatching l in allLiveMatches) { if (l.Recipient.ID == currentRecipient.ID && l.Status == "current match") { matchFound = 2; liveOrgan = l; } } pnlMatch.Visible = true; if (matchFound == 0) { lblOutput.Text = "Sorry no matches yet!"; } else if (matchFound == 1) { currentRecipient.Status = "complete"; OrganRecipientDB.updateOrganRecipient(currentRecipient); deadOrgan.DeceasedDonor.Status = "complete"; DeceasedDonorDB.updateDeceasedDonor(deadOrgan.DeceasedDonor); deadOrgan.Status = "complete"; DeceasedOrganMatchingDB.updateMatch(deadOrgan); foreach (DeceasedOrganMatching d2 in allDeadMatches) { if (d2.DeceasedDonor.ID == deadOrgan.DeceasedDonor.ID && d2.Status != "complete") { d2.Status = "not possible"; DeceasedOrganMatchingDB.updateMatch(d2); } } foreach (DeceasedOrganMatching dd in allDeadMatches) { if (dd.Recipient.ID == currentRecipient.ID && dd.Status != "complete") { dd.Status = "not possible"; DeceasedOrganMatchingDB.updateMatch(dd); } } foreach (LiveOrganMatching ll in allLiveMatches) { if (ll.Recipient.ID == currentRecipient.ID && ll.Status != "complete") { ll.Status = "not possible"; LiveOrganMatchingDB.updateMatch(ll); } } Label1.Text = "Successfully completed"; string MyAccountUrl = "RecipientWaitingList.aspx"; Page.Header.Controls.Add(new LiteralControl(string.Format(@" <META http-equiv='REFRESH' content=2;url={0}> ", MyAccountUrl))); } else if (matchFound == 2) { currentRecipient.Status = "complete"; OrganRecipientDB.updateOrganRecipient(currentRecipient); liveOrgan.LiveDonor.Status = "complete"; LiveDonorDB.updateLiveDonor(liveOrgan.LiveDonor); liveOrgan.Status = "complete"; LiveOrganMatchingDB.updateMatch(liveOrgan); foreach (LiveOrganMatching l2 in allLiveMatches) { if (l2.LiveDonor.LdonorID == liveOrgan.LiveDonor.LdonorID && l2.Status != "complete") { l2.Status = "not possible"; LiveOrganMatchingDB.updateMatch(l2); } } foreach (DeceasedOrganMatching dd in allDeadMatches) { if (dd.Recipient.ID == currentRecipient.ID && dd.Status != "complete") { dd.Status = "not possible"; DeceasedOrganMatchingDB.updateMatch(dd); } } foreach (LiveOrganMatching ll in allLiveMatches) { if (ll.Recipient.ID == currentRecipient.ID && ll.Status != "complete") { ll.Status = "not possible"; LiveOrganMatchingDB.updateMatch(ll); } } Label1.Text = "Successfully completed"; string MyAccountUrl = "RecipientWaitingList.aspx"; Page.Header.Controls.Add(new LiteralControl(string.Format(@" <META http-equiv='REFRESH' content=2;url={0}> ", MyAccountUrl))); } }
protected void btnSubmit_Click(object sender, EventArgs e) { try { OrganRecipient or = new OrganRecipient(); or.Establishment = (Establishment)Session["establishment"]; or.Bloodgroup = ddlBloodType.SelectedValue; or.DOB = Convert.ToDateTime(tbxDate.Text); or.Height = Convert.ToInt32(tbxHeight.Text); or.Weight = Convert.ToInt32(tbxWeight.Text); or.Addedon = DateTime.Today; or.Organrequired = rbtnlstOrganType.SelectedValue; or.Comments = tbxComments.Text; or.Urgency = Convert.ToInt32(ddlUrgency.SelectedValue); or.Refnumber = tbxReference.Text; or.Status = "waiting"; OrganRecipientDB.insertOrganRecipient(or); Establishment currentEstab = (Establishment)Session["establishment"]; string address = currentEstab.Address; List <LiveDonor> allLiveDonors = LiveDonorDB.getallLiveDonor(); OrganRecipient tReciepient; //donor id from database List <OrganRecipient> allReciepients = OrganRecipientDB.getAllRecipients(); String x = allReciepients[0].ID; int tempId = Convert.ToInt32(x.Substring(4, x.Length - 4)); foreach (OrganRecipient dd in allReciepients) { if (tempId < Convert.ToInt32(dd.ID.Substring(4, dd.ID.Length - 4)) && dd.Establishment.ID == currentEstab.ID) { tempId = Convert.ToInt32(dd.ID.Substring(4, dd.ID.Length - 4)); } } tReciepient = OrganRecipientDB.getRecipientByID("orwl" + Convert.ToString(tempId)); //end of getting last one bool f = false; foreach (LiveDonor ldnr in allLiveDonors) { int y = 0; String bt2 = or.Bloodgroup; String bt1 = ldnr.Userid.BloodType; if ((bt1 == "A+" || bt1 == "A-") && (bt2 == "A+" || bt2 == "A-" || bt2 == "AB+" || bt2 == "AB-")) { y = 1; } else if ((bt1 == "B+" || bt1 == "B-") && (bt2 == "B+" || bt2 == "B-" || bt2 == "AB+" || bt2 == "AB-")) { y = 1; } else if ((bt1 == "AB+" || bt1 == "AB-") && (bt2 == "AB+" || bt2 == "AB-")) { y = 1; } else if ((bt1 == "O+" || bt1 == "O-") && (bt2 == "A+" || bt2 == "A-" || bt2 == "AB+" || bt2 == "AB-" || bt2 == "B+" || bt2 == "B-" || bt2 == "O+" || bt2 == "O-")) { y = 1; } if (ldnr.OrganType == or.Organrequired && y == 1 && ldnr.status == "not allotted") { string matchAddress = ldnr.Userid.Address; float d = getDistance(address, matchAddress); int score = 0; int d1 = Convert.ToInt32(d); d = d / 3600; int wTimeScore = 0, distanceScore = 0; if (d < 5) { distanceScore = 5; } else if (d < 15) { distanceScore = 4; } else if (d < 25) { distanceScore = 3; } else if (d < 35) { distanceScore = 2; } else if (d < 45) { distanceScore = 1; } else { distanceScore = 0; } wTimeScore = 1; score = or.Urgency * 3 + distanceScore + wTimeScore; LiveOrganMatching match = new LiveOrganMatching(); match.LiveDonor = ldnr; match.Recipient = tReciepient; match.MatchScore = score; match.Comments = "NIL"; match.Status = "pending"; match.Distance = d1; LiveOrganMatchingDB.insertMatch(match); f = true; } } if (f == true) { bool f1 = false; List <LiveOrganMatching> liveMatches = LiveOrganMatchingDB.getAllMatches(); List <LiveOrganMatching> liveMatchCurr = new List <LiveOrganMatching>(); foreach (LiveOrganMatching LOM in liveMatches) { if (LOM.Recipient == tReciepient) { liveMatchCurr.Add(LOM); f1 = true; } } if (f1 == true) { bool f3 = false; List <LiveOrganMatching> tempDOMList = new List <LiveOrganMatching>(); foreach (LiveOrganMatching LOM1 in liveMatchCurr) { //also check for highest score foreach (LiveOrganMatching LOM2 in liveMatches) { if (LOM1.LiveDonor == LOM2.LiveDonor && LOM2.Status == "current match") { f3 = true; } } if (f3 == false) { tempDOMList.Add(LOM1); } } LiveOrganMatching tempDOM = tempDOMList[0]; foreach (LiveOrganMatching t in tempDOMList) { if (t.MatchScore > tempDOM.MatchScore) { tempDOM = t; } } tempDOM.Status = "current match"; LiveOrganMatchingDB.updateMatch(tempDOM); } } lblOutput.Text = "Recipient successfully added!"; tbxDate.Text = ""; tbxHeight.Text = ""; tbxWeight.Text = ""; tbxComments.Text = ""; tbxReference.Text = ""; ddlBloodType.SelectedIndex = 0; ddlUrgency.SelectedIndex = 0; string MyAccountUrl = "RecipientWaitingList.aspx"; Page.Header.Controls.Add(new LiteralControl(string.Format(@" <META http-equiv='REFRESH' content=2;url={0}> ", MyAccountUrl))); } catch { lblOutput.Text = "Please Check The Entered Values"; } }