public static BPMatchUserToUser getUserBloodRequestsbyMatchID(string bpMatchUsrUsr) { BPMatchUserToUser br = new BPMatchUserToUser(); try { SqlCommand command = new SqlCommand("Select * from BPMatchUserToUser where bpMatchUsrUsr = @bpMatchUsrUsr"); command.Parameters.AddWithValue("@bpMatchUsrUsr ", bpMatchUsrUsr); command.Connection = connection; connection.Open(); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { br.bpMatchUsrUsrID = reader["bpMatchUsrUsr"].ToString(); BloodPlateletRequestUser bp = BloodPlateletRequestUserDB.getUserBloodRequestsbyID(reader["bplUserRequestID"].ToString()); br.bplUsrRequestID = bp; Users u = UsersDB.getUserbyID(reader["matchID"].ToString()); br.matchID = u; br.status = reader["status"].ToString(); br.distance = Convert.ToInt32(reader["distance"]); } reader.Close(); } finally { connection.Close(); } return(br); }
//get all blood and platelet transaction list from database public static List <BplTransactionUserToUser> getAllbpTransUserToUser() { List <BplTransactionUserToUser> matches = new List <BplTransactionUserToUser>(); try { SqlCommand command = new SqlCommand("Select * from BplTransactionUserToUser"); command.Connection = connection; connection.Open(); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { BplTransactionUserToUser m = new BplTransactionUserToUser(); m.bplUserTrasactionID = reader["bplUserTrasactionID"].ToString(); BPMatchUserToUser es = BPMatchUserToUserDB.getUserBloodRequestsbyMatchID(reader["bpMatchUsrUsr"].ToString()); m.bpMatchUsrUsr = es; m.unitsPossible = 1; m.status = reader["status"].ToString(); matches.Add(m); } reader.Close(); } finally { connection.Close(); } return(matches); }
protected void gvAcceptedUserRequests_SelectedIndexChanged(object sender, EventArgs e) { BloodPlateletRequestUser selectedRequest = userRequests[gvRequestInfo.PageSize * gvRequestInfo.PageIndex + gvRequestInfo.SelectedIndex]; List <BplTransactionUserToUser> allUserTransactions = BplTransactionUserToUserDB.getAllbpTransUserToUser(); foreach (BplTransactionUserToUser m in allUserTransactions) { if (m.bpMatchUsrUsr.bplUsrRequestID.bplUserRequestID == selectedRequest.bplUserRequestID && m.status == "accepted") { usersAccepted.Add(m); } } BplTransactionUserToUser selectedTransaction = usersAccepted[gvAcceptedUserRequests.PageSize * gvAcceptedUserRequests.PageIndex + gvAcceptedUserRequests.SelectedIndex]; selectedTransaction.status = "complete"; BplTransactionUserToUserDB.updateBPTranscationUserToUser(selectedTransaction); gvAcceptedUserRequests.DataBind(); BPMatchUserToUser currentMatch = selectedTransaction.bpMatchUsrUsr; currentMatch.status = "declined"; BPMatchUserToUserDB.updateMatchUserToUser(currentMatch); Users currentUser = currentMatch.matchID; List <LastDonationDate> allLastDates = LastDonationDateDB.getAllLastDonations(); foreach (LastDonationDate ld in allLastDates) { if (ld.User.UserId == currentUser.UserId) { ld.LastDonation = DateTime.Today; ld.Type = currentMatch.bplUsrRequestID.bloodOrPlatelet; ld.Status = "Not in transaction"; LastDonationDateDB.updateLastDonation(ld); } } if (selectedRequest.Units == selectedRequest.unitMatched) { selectedRequest.Status = "complete"; BloodPlateletRequestUserDB.updateBloodPlateles(selectedRequest); gvRequestInfo.DataBind(); } }
public static int updateMatchUserToUser(BPMatchUserToUser u) { int result; try { SqlCommand command = new SqlCommand("Update BPMatchUserToUser set status=@status where bpMatchUsrUsr=@bpMatchUsrUsr"); command.Parameters.AddWithValue("@bpMatchUsrUsr", u.bpMatchUsrUsrID); command.Parameters.AddWithValue("@status", u.status); command.Connection = connection; connection.Open(); result = command.ExecuteNonQuery(); } finally { connection.Close(); } return(result); }
public static int insertbpusertoUser(BPMatchUserToUser m) { int num = -1; try { SqlCommand command = new SqlCommand("insert into BPMatchUserToUser values( @bplUserRequestID , @matchID , @status ,@distance )"); command.Parameters.AddWithValue("@bplUserRequestID", m.bplUsrRequestID.bplUserRequestID); command.Parameters.AddWithValue("@matchID", m.matchID.userId); 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 BplTransactionUserToUser(BPMatchUserToUser bpMatchUsrUsr, string status) { this.bpMatchUsrUsr = bpMatchUsrUsr; this.status = status; }
protected void btnRequest_Click(object sender, EventArgs e) { string groups, estname, type; int unit; if (RadioBlood.Checked) { groups = "blood"; } else { groups = "platelet"; } if (tbxAmount.Text == "") { lblAmount.Visible = true; return; } else { lblAmount.Visible = false; unit = Convert.ToInt32(tbxAmount.Text); } estname = ddlEstablish.SelectedItem.Text; Establishment es = EstablishmentDB.getEstablishmentByName(estname); Users u = UsersDB.getUserbyEmail(Session["email"].ToString()); type = ddlBloodType.SelectedValue; BloodPlateletRequestUser b = new BloodPlateletRequestUser(unit, 0, es, u, type, "pending", groups, DateTime.Now); int num = BloodPlateletRequestUserDB.insertBloodRequestByUser(b); if (num != 1) { lblOutput.Text = "Cannot Request Blood!"; return; } else { lblOutput.Text = "Request Successful!"; List <BloodPlateletRequestUser> bloodPlateletRequestUser = BloodPlateletRequestUserDB.getAllUserBloodRequests(); string x = bloodPlateletRequestUser[0].bplUserRequestID; int tempID = Convert.ToInt32(x.Substring(4, x.Length - 4)); foreach (BloodPlateletRequestUser bpr in bloodPlateletRequestUser) { if (tempID < Convert.ToInt32(bpr.bplUserRequestID.Substring(4, bpr.bplUserRequestID.Length - 4)) && bpr.requestorID.UserId == u.UserId) { tempID = Convert.ToInt32(bpr.bplUserRequestID.Substring(4, bpr.bplUserRequestID.Length - 4)); } } BloodPlateletRequestUser request = BloodPlateletRequestUserDB.getUserBloodRequestsbyID("bpur" + Convert.ToString(tempID)); List <Establishment> establishments = EstablishmentDB.getAllEstablishments(); foreach (Establishment est in establishments) { BPMatchUserToEstab newMatch = new BPMatchUserToEstab(); if ((est.Type == "Hospital" || est.Type == "Blood Bank") && request.Establishment.ID != est.ID) { int d = getDistance(est.Address, request.Establishment.Address); if (d < 3600 && d > 0) { newMatch.bpRequestID = request; newMatch.matchID = est; newMatch.distance = d; newMatch.status = "pending"; int nums = BPMatchUserToEstabDB.insertbp(newMatch); if (nums != 1) { lblOutput.Text = "Cannot Request Blood!"; return; } else { lblOutput.Text = "Request Successful!"; } } } } List <Users> users = UsersDB.getallUsers(); List <LastDonationDate> lastDate = LastDonationDateDB.getAllLastDonations(); foreach (Users usr in users) { BPMatchUserToUser newMatchU = new BPMatchUserToUser(); string userGroup = usr.BloodType; string requestGroup = request.Type; bool f = false; if (requestGroup == "AB+") { f = true; } else if (requestGroup == "AB-" && (userGroup == "O-" || userGroup == "B-" || userGroup == "A-" || userGroup == "AB-")) { f = true; } else if (requestGroup == "A+" && (userGroup == "O-" || userGroup == "O+" || userGroup == "A-" || userGroup == "A+")) { f = true; } else if (requestGroup == "A-" && (userGroup == "O-" || userGroup == "A-")) { f = true; } else if (requestGroup == "B+" && (userGroup == "O-" || userGroup == "O+" || userGroup == "B-" || userGroup == "B+")) { f = true; } else if (requestGroup == "B-" && (userGroup == "O-" || userGroup == "B-")) { f = true; } else if (requestGroup == "O+" && (userGroup == "O-" || userGroup == "O+")) { f = true; } else if (requestGroup == "O-" && (userGroup == "O-")) { f = true; } if ((request.requestorID.UserId != usr.UserId) && (f == true) && (usr.MedicalStatus.ToLower() == "can donate") && (usr.status == "Allow")) { foreach (LastDonationDate lddate in lastDate) { if ((lddate.User.UserId == usr.UserId)) { if ((lddate.LastDonation < System.DateTime.Now.AddDays(-90) && lddate.Type == "blood") || (lddate.LastDonation < System.DateTime.Now.AddDays(-14) && lddate.Type == "platelet") && lddate.Status == "Not in transaction") { string origin = usr.Latitude + "," + usr.Longtitude; int d = getDistance(origin, request.Establishment.Address); if (d < 3600) { newMatchU.bplUsrRequestID = request; newMatchU.matchID = usr; newMatchU.distance = d; newMatchU.status = "pending"; BPMatchUserToUserDB.insertbpusertoUser(newMatchU); } } } } } } string DRUrl = "DonateAndRequest.aspx"; Page.Header.Controls.Add(new LiteralControl(string.Format(@" <META http-equiv='REFRESH' content=3;url={0}> ", DRUrl))); } //} }