protected void Page_Load(object sender, EventArgs e) { if (Session["establishment"] == null) { Server.Transfer("Login.aspx"); } else { bplist = new List <EstablishmentBPRequest>(); currentbplist = new List <EstablishmentBPRequest>(); expirebplist = new List <EstablishmentBPRequest>(); bplist = EstablishmentBPRequestDB.getAllEstablishmentRequests(); foreach (EstablishmentBPRequest bp in bplist) { if (bp.Status == "pending") { currentbplist.Add(bp); } else { expirebplist.Add(bp); } } if (currentbplist.Count == 0) { Panel1.Visible = false; lblSorry.Visible = true; } else { Panel1.Visible = true; lblSorry.Visible = false; gvRequest.DataSource = currentbplist; gvRequest.DataBind(); } if (expirebplist.Count == 0) { Panel2.Visible = false; lblsorry2.Visible = true; } else { Panel2.Visible = true; lblsorry2.Visible = false; GridView1.DataSource = expirebplist; GridView1.DataBind(); } } }
protected void Page_Load(object sender, EventArgs e) { Establishment currentEstab = (Establishment)Session["establishment"]; List <EstablishmentBPRequest> allRequests = EstablishmentBPRequestDB.getAllEstablishmentRequests(); bool requestFound = false; foreach (EstablishmentBPRequest r in allRequests) { if (r.Status == "pending" && r.Establishment.ID == currentEstab.ID) { pendingRequests.Add(r); requestFound = true; } } if (requestFound == true) { gvRequests.DataSource = pendingRequests; gvRequests.DataBind(); } else { lblOutput.Text = "Your establishment currently has no pending blood/platelet requests"; } }
protected void btnSubmit_Click(object sender, EventArgs e) { //sending request if the amount is greater than 1 if (Convert.ToInt32(tbxAmount.Text) > 0) { Establishment currentEstab = (Establishment)Session["establishment"]; EstablishmentBPRequest currentRequestBP = new EstablishmentBPRequest(); currentRequestBP.BloodGroup = ddlBloodType.SelectedValue; currentRequestBP.Units = Convert.ToInt32(tbxAmount.Text); currentRequestBP.MatchedUnits = 0; currentRequestBP.Type = ddlRequestType.SelectedValue; currentRequestBP.Establishment = currentEstab; currentRequestBP.Status = "pending"; currentRequestBP.RequestDate = DateTime.Today; int num = EstablishmentBPRequestDB.insertEstablishmentRequest(currentRequestBP); if (num != 1) { lblOutput.Text = "Cannot"; } else { List <EstablishmentBPRequest> establishmentBPRequest = EstablishmentBPRequestDB.getAllEstablishmentRequests(); //get inserted request string x = establishmentBPRequest[0].ID; int tempId = Convert.ToInt32(x.Substring(4, x.Length - 4)); foreach (EstablishmentBPRequest tempReq in establishmentBPRequest) { int t = Convert.ToInt32(tempReq.ID.Substring(4, tempReq.ID.Length - 4)); if (tempId <= t && tempReq.Establishment.ID == currentEstab.ID) { tempId = Convert.ToInt32(tempReq.ID.Substring(4, tempReq.ID.Length - 4)); } } EstablishmentBPRequest request = EstablishmentBPRequestDB.getRequestByID("bper" + Convert.ToString(tempId)); lblOutput.Text = "Your request ID is bper" + tempId; List <Establishment> establishments = EstablishmentDB.getAllEstablishments(); foreach (Establishment est in establishments) { EstabEstabMatch newMatch = new EstabEstabMatch(); if ((est.Type == "Hospital" || est.Type == "Blood Bank") && currentEstab.ID != est.ID) { int d = getDistance(est.Address, currentEstab.Address); if (d < 3600) { newMatch.Request = request; newMatch.Match = est; newMatch.Distance = d; newMatch.Status = "pending"; EstabEstabMatchDB.insertMatch(newMatch); } } } List <Users> users = UsersDB.getallUsers(); List <LastDonationDate> allDates = LastDonationDateDB.getAllLastDonations(); foreach (Users tusr in users) { EstabUserMatch newMatch = new EstabUserMatch(); string userGroup = tusr.BloodType; string requestGroup = request.BloodGroup; bool f = false; //check blood to match with other user 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 match found check his medical status and status if (f == true && tusr.medicalStatus.ToLower() == "can donate" && tusr.Status == "Allow") { foreach (LastDonationDate d in allDates) { if (d.User.userId == tusr.userId) { if ((d.LastDonation < System.DateTime.Now.AddDays(-90) && d.Type == "blood") || (d.LastDonation < System.DateTime.Now.AddDays(-14) && d.Type == "platelet") && d.Status == "Not in transaction") { int d1 = getDistance(Convert.ToString(tusr.latitude) + "," + Convert.ToString(tusr.longtitude), currentEstab.Address); if (d1 < 3600) { newMatch.Match = tusr; newMatch.Request = request; newMatch.Status = "pending"; newMatch.Distance = d1; EstabUserMatchDB.insertMatch(newMatch); } } } } } } tbxAmount.Text = ""; ddlBloodType.SelectedIndex = 0; ddlRequestType.SelectedIndex = 0; string MyAccountUrl = "RequestBlood.aspx"; Page.Header.Controls.Add(new LiteralControl(string.Format(@" <META http-equiv='REFRESH' content=4;url={0}> ", MyAccountUrl))); } } else { lblOutput.Text = "Blood amount cannot be 0 or less than that"; return; } }