protected void gvUserMatches_SelectedIndexChanged(object sender, EventArgs e)
    {
        EstablishmentBPRequest      selectedRequest     = pendingRequests[gvRequests.PageSize * gvRequests.PageIndex + gvRequests.SelectedIndex];
        List <EstabUserTransaction> allUserTransactions = EstabUserTransactionDB.getAllTransactions();

        foreach (EstabUserTransaction m in allUserTransactions)
        {
            if (m.Match.Request.ID == selectedRequest.ID && m.Status == "accepted")
            {
                userTransactions.Add(m);
            }
        }
        EstabUserTransaction selectedTransaction = userTransactions[gvUserMatches.SelectedIndex];

        selectedTransaction.Status = "complete";
        EstabUserTransactionDB.updateTransaction(selectedTransaction);


        EstabUserMatch currentMatch = selectedTransaction.Match;

        currentMatch.Status = "complete";
        EstabUserMatchDB.updateMatch(currentMatch);

        Users currentUser = currentMatch.Match;
        List <LastDonationDate> allLastDates = LastDonationDateDB.getAllLastDonations();

        foreach (LastDonationDate ld in allLastDates)
        {
            if (ld.User.UserId == currentUser.UserId)
            {
                ld.LastDonation = DateTime.Today;
                ld.Type         = currentMatch.Request.Type;
                ld.Status       = "Not in transaction";
                LastDonationDateDB.updateLastDonation(ld);
            }
        }



        if (selectedRequest.MatchedUnits == selectedRequest.Units)
        {
            selectedRequest.Status = "complete";
            EstablishmentBPRequestDB.updateEstablishmentRequest(selectedRequest);
            foreach (EstabUserTransaction ut in allUserTransactions)
            {
                if (ut.Match.Request.ID == selectedRequest.ID)
                {
                    ut.Status = "complete";
                    EstabUserTransactionDB.updateTransaction(ut);
                    ut.Match.Status = "complete";
                    EstabUserMatchDB.updateMatch(ut.Match);
                }
            }
        }

        Server.Transfer("PendingRequests.aspx");
    }
    //protected void gvUserMatches_PageIndexChanging(object sender, GridViewPageEventArgs e)
    //{
    //    gvUserMatches.PageIndex = e.NewPageIndex;
    //    gvUserMatches.DataSource = userTransactions;
    //    gvUserMatches.DataBind();
    //}

    //protected void gvEstabMatches_PageIndexChanging(object sender, GridViewPageEventArgs e)
    //{
    //    gvEstabMatches.PageIndex = e.NewPageIndex;
    //    gvEstabMatches.DataSource = estabTransactions;
    //    gvEstabMatches.DataBind();
    //}



    protected void lbtnReport_Click(object sender, EventArgs e)
    {
        LinkButton             lbtn            = (LinkButton)sender;
        GridViewRow            gvr             = (GridViewRow)lbtn.NamingContainer;
        int                    i               = Convert.ToInt32(gvr.RowIndex);
        EstablishmentBPRequest selectedRequest = pendingRequests[gvRequests.PageSize * gvRequests.PageIndex + gvRequests.SelectedIndex];

        List <EstabUserTransaction> allUserTransactions = EstabUserTransactionDB.getAllTransactions();

        foreach (EstabUserTransaction m in allUserTransactions)
        {
            if (m.Match.Request.ID == selectedRequest.ID && m.Status == "accepted")
            {
                userTransactions.Add(m);
            }
        }

        EstabUserTransaction selectedTransaction = userTransactions[i];
        Users reportedUser = selectedTransaction.Match.Match;

        reportedUser.MedicalStatus         = "cannot donate";
        reportedUser.MedicalStatusUpdateBy = ((Establishment)Session["establishment"]).ID;
        UsersDB.updateUser(reportedUser);
        List <LastDonationDate> allLastDates = LastDonationDateDB.getAllLastDonations();

        foreach (LastDonationDate ld in allLastDates)
        {
            if (ld.User.UserId == reportedUser.userId)
            {
                ld.LastDonation = DateTime.Today;
                ld.Type         = selectedRequest.Type;
                ld.Status       = "Not in transaction";
                LastDonationDateDB.updateLastDonation(ld);
            }
        }

        selectedTransaction.Status = "cancelled";
        EstabUserTransactionDB.updateTransaction(selectedTransaction);

        selectedTransaction.Match.Status = "declined";
        EstabUserMatchDB.updateMatch(selectedTransaction.Match);

        selectedRequest.MatchedUnits = selectedRequest.MatchedUnits - selectedTransaction.Units;
        EstablishmentBPRequestDB.updateEstablishmentRequest(selectedRequest);
        Server.Transfer("PendingRequests.aspx");
    }
Esempio n. 3
0
    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();
        }
    }
Esempio n. 4
0
    protected void lbtnReport_Click(object sender, EventArgs e)
    {
        LinkButton  lbtn = (LinkButton)sender;
        GridViewRow gvr  = (GridViewRow)lbtn.NamingContainer;
        int         i    = Convert.ToInt32(gvr.RowIndex);
        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[i];
        Users reportedUser = selectedTransaction.bpMatchUsrUsr.matchID;

        reportedUser.MedicalStatus         = "cannot donate";
        reportedUser.MedicalStatusUpdateBy = ((Establishment)Session["establishment"]).ID;
        UsersDB.updateUser(reportedUser);
        List <LastDonationDate> allLastDates = LastDonationDateDB.getAllLastDonations();

        foreach (LastDonationDate ld in allLastDates)
        {
            if (ld.User.UserId == reportedUser.userId)
            {
                ld.LastDonation = DateTime.Today;
                ld.Type         = selectedRequest.bloodOrPlatelet;
                ld.Status       = "Not in transaction";
                LastDonationDateDB.updateLastDonation(ld);
            }
        }

        selectedTransaction.status = "cancelled";
        BplTransactionUserToUserDB.updateBPTranscationUserToUser(selectedTransaction);

        selectedTransaction.bpMatchUsrUsr.status = "declined";
        BPMatchUserToUserDB.updateMatchUserToUser(selectedTransaction.bpMatchUsrUsr);

        selectedRequest.unitMatched = selectedRequest.unitMatched - selectedTransaction.unitsPossible;
        BloodPlateletRequestUserDB.updateBloodPlateles(selectedRequest);
        Server.Transfer("UserDonations.aspx");
    }
Esempio n. 5
0
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        List <Users> Userlist = UsersDB.getallUsers();

        if (!CheckTerm.Checked)
        {
            cbTermVali.Visible = true;
            return;
        }
        else
        {
            cbTermVali.Visible = false;

            DateTime check = DateTime.Now.AddYears(-18);
            if (Convert.ToDateTime(tbxDOB.Text) > check)
            {
                lblDOB.Visible = true;
                return;
            }

            foreach (Users u in Userlist)
            {
                if (tbxNRIC.Text == u.nric)
                {
                    lblNRIC.Visible = true;
                    return;
                }
                else
                {
                    lblNRIC.Visible = false;
                }
            }

            foreach (Users u in Userlist)
            {
                if (tbxEmail.Text == u.email)
                {
                    lblEmail.Visible = true;
                    return;
                }
                else
                {
                    lblEmail.Visible = false;
                }
            }

            foreach (Users u in Userlist)
            {
                if (tbxUsername.Text == u.password)
                {
                    lblUsername.Visible = true;
                    return;
                }
                else
                {
                    lblUsername.Visible = false;
                }
            }



            if (tbxHeight.Text == "")
            {
                theight = 0;
            }
            else
            {
                theight = Convert.ToInt32(tbxHeight.Text);
            }


            if (tbxWeight.Text == "")
            {
                tweight = 0;
            }
            else
            {
                tweight = Convert.ToInt32(tbxWeight.Text);
            }


            if (RadioMale.Checked)
            {
                tgender = "Male";
            }
            else
            {
                tgender = "Female";
            }
            if (RadioMSSingle.Checked)
            {
                Rstatus = "Single";
            }
            else if (RadioMSWidowed.Checked)
            {
                Rstatus = "Widowed";
            }
            else if (RadioMSDivorced.Checked)
            {
                Rstatus = "Divorced";
            }
            else
            {
                Rstatus = "Married";
            }

            if (ddllastDAsk.SelectedIndex == 0)
            {
                lblldAsk.Visible = true;
                Panel1.Visible   = false;
                return;
            }
            else if (ddllastDAsk.SelectedIndex == 1)
            {
                if (Convert.ToDateTime(tbxlastDonate.Text) > System.DateTime.Now)
                {
                    lbllastDonate.Visible = true;
                    return;
                }
                else
                {
                    lbllastDonate.Visible = false;
                    lstDonate             = Convert.ToDateTime(tbxlastDonate.Text);
                    if (RadioBlood.Checked)
                    {
                        bloodgroup = "blood";
                    }
                    else
                    {
                        bloodgroup = "platelet";
                    }
                }
            }
            else
            {
                lstDonate  = System.DateTime.Now.AddYears(-10);
                bloodgroup = "blood";
            }



            Users newuser = new Users(tbxEmail.Text, tbxName.Text, Convert.ToDateTime(tbxDOB.Text), tgender, Rstatus, theight, tweight, ddlBloodType.SelectedValue, tbxUsername.Text, tbxPassword.Text, Convert.ToInt32(tbxPhone.Text), tbxNRIC.Text, "null", 0, "null", "Allow", tbxAddress.Text, Convert.ToInt32(tbxZipcode.Text), ddlNationality.SelectedValue, "Default.png", "null", "Can Donate", "null", "null", "null");
            int   num     = UsersDB.insertUser(newuser);
            if (num != -1)
            {
                Users            newu = UsersDB.getUserbyEmail(tbxEmail.Text);
                LastDonationDate ldd  = new LastDonationDate(newu, lstDonate, bloodgroup, "Not in transaction");
                LastDonationDateDB.insertLastDonation(ldd);
                if (checkEmergencyContact.Checked)
                {
                    Session["Username"] = tbxUsername.Text;
                    Server.Transfer("AddationalRegister.aspx");
                }
                else
                {
                    lblOutput.Visible = true;
                    lblOutput.Text    = "Registeration Successful!";
                    string HomePageUrl = "Login.aspx";
                    Page.Header.Controls.Add(new LiteralControl(string.Format(@" <META http-equiv='REFRESH' content=3;url={0}> ", HomePageUrl)));
                }
            }
            else
            {
                lblOutput.Visible = true;
                lblOutput.Text    = "User Cannot Register!";
                return;
            }
        }
    }
Esempio n. 6
0
    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;
        }
    }
Esempio n. 7
0
    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)));
        }
        //}
    }