public static BPMatchUserToEstab getBloodRequestsMatchbyID(string ID)
    {
        BPMatchUserToEstab m = new BPMatchUserToEstab();

        try
        {
            SqlCommand command = new SqlCommand("Select * from BPMatchUserToEstab where bpMatchUsrEstID=@UserID");
            command.Parameters.AddWithValue("@UserID", ID);
            command.Connection = connection;
            connection.Open();
            SqlDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                m.bpMatchUsrEstID = reader["bpMatchUsrEstID"].ToString();
                Establishment es = EstablishmentDB.getEstablishmentByID(reader["matchID"].ToString());
                m.matchID = es;
                BloodPlateletRequestUser u = BloodPlateletRequestUserDB.getUserBloodRequestsbyID(reader["bplUserRequestID"].ToString());
                m.bpRequestID = u;
                m.distance    = Convert.ToInt32(reader["distance"]);
                m.status      = reader["status"].ToString();
            }
            reader.Close();
        }
        finally
        {
            connection.Close();
        }
        return(m);
    }
Beispiel #2
0
    protected void gvAcceptedEstabRequests_SelectedIndexChanged(object sender, EventArgs e)
    {
        BloodPlateletRequestUser         selectedRequest      = userRequests[gvRequestInfo.PageSize * gvRequestInfo.PageIndex + gvRequestInfo.SelectedIndex];
        List <BplTransactionUserToEstab> allEstabTransactions = BplTransactionUserToEstabDB.getAllbpTransactionUserToEsta();

        foreach (BplTransactionUserToEstab m in allEstabTransactions)
        {
            if (m.bpMatchUsrEstID.bpRequestID.bplUserRequestID == selectedRequest.bplUserRequestID && m.status == "accepted")
            {
                estabsAccepted.Add(m);
            }
        }

        BplTransactionUserToEstab selectedTransaction = estabsAccepted[gvAcceptedEstabRequests.PageSize * gvAcceptedEstabRequests.PageIndex + gvAcceptedEstabRequests.SelectedIndex];

        selectedTransaction.status = "complete";
        BplTransactionUserToEstabDB.updateBPTranscationUserToEstab(selectedTransaction);
        gvAcceptedEstabRequests.DataBind();

        BPMatchUserToEstab currentMatch = selectedTransaction.bpMatchUsrEstID;

        currentMatch.status = "declined";
        BPMatchUserToEstabDB.updateBPMatchUserToEstab(currentMatch);

        if (selectedRequest.Units == selectedRequest.unitMatched)
        {
            selectedRequest.Status = "complete";
            BloodPlateletRequestUserDB.updateBloodPlateles(selectedRequest);
            gvRequestInfo.DataBind();
        }
    }
 public BPMatchUserToEstab(BloodPlateletRequestUser UserRequestID, Establishment eID, string st, int dist)
 {
     matchID     = eID;
     bpRequestID = UserRequestID;
     status      = st;
     distance    = dist;
 }
    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);
    }
    public static int insertBloodRequestByUser(BloodPlateletRequestUser br)
    {
        int num = -1;

        try
        {
            SqlCommand command = new SqlCommand("insert into BloodPlateletRequestUser values(@unitsRequird ,@unitMatched, @establishmentID , @requestorID , @bloodGroup , @bloodOrPlatelet , @status , @requestDate)");
            command.Parameters.AddWithValue("@unitsRequird", br.Units);
            command.Parameters.AddWithValue("@unitMatched", br.unitMatched);
            command.Parameters.AddWithValue("@establishmentID", br.Establishment.ID);
            command.Parameters.AddWithValue("@requestorID", br.requestorID.userId);
            command.Parameters.AddWithValue("@bloodGroup", br.Type);
            command.Parameters.AddWithValue("@bloodOrPlatelet", br.bloodOrPlatelet);
            command.Parameters.AddWithValue("@status", br.Status);
            command.Parameters.AddWithValue("@requestDate", br.Time);
            command.Connection = connection;
            connection.Open();
            if (command.ExecuteNonQuery() > 0)
            {
                num = 1;
            }
        }
        finally
        {
            connection.Close();
        }
        return(num);
    }
    //get all blood and platelet match list from database
    public static List <BPMatchUserToEstab> getAllbpMatchUserToEsta()
    {
        List <BPMatchUserToEstab> matches = new List <BPMatchUserToEstab>();

        try
        {
            SqlCommand command = new SqlCommand("Select * from BPMatchUserToEstab");
            command.Connection = connection;
            connection.Open();
            SqlDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                BPMatchUserToEstab m = new BPMatchUserToEstab();
                m.bpMatchUsrEstID = reader["bpMatchUsrEstID"].ToString();
                Establishment es = EstablishmentDB.getEstablishmentByID(reader["matchID"].ToString());
                m.matchID = es;
                BloodPlateletRequestUser u = BloodPlateletRequestUserDB.getUserBloodRequestsbyID(reader["bplUserRequestID"].ToString());
                m.bpRequestID = u;
                m.distance    = Convert.ToInt32(reader["distance"]);
                m.status      = reader["status"].ToString();
                matches.Add(m);
            }
            reader.Close();
        }
        finally
        {
            connection.Close();
        }
        return(matches);
    }
Beispiel #7
0
    protected void btnCancel_Click(object sender, EventArgs e)
    {
        BloodPlateletRequestUser bpru = BloodPlateletRequestUserDB.getUserBloodRequestsbyID(lblRID.Text);

        bpru.Status = "cancelled";
        int num = BloodPlateletRequestUserDB.updateBloodPlateles(bpru);

        if (num != 1)
        {
            lblOutput.Text = "Cannot Cancel Request Right Now!";
            return;
        }
        else
        {
            lblOutput.Text = "Cancel Successful! u can check history in the following table";
            //if donation cancel change the status of matching also
            List <BPMatchUserToUser> bpmuulist = BPMatchUserToUserDB.getAllUserBloodRequestsbyUserID(bpru.bplUserRequestID);
            foreach (BPMatchUserToUser b in bpmuulist)
            {
                b.status = "declined";
                BPMatchUserToUserDB.updateMatchUserToUser(b);
            }
            List <BPMatchUserToEstab> bpmuelist = BPMatchUserToEstabDB.getAllBloodRequestsMatchbyUserID(bpru.bplUserRequestID);
            foreach (BPMatchUserToEstab be in bpmuelist)
            {
                be.status = "declined";
                BPMatchUserToEstabDB.updateBPMatchUserToEstab(be);
            }
        }
    }
Beispiel #8
0
    protected void GridView2_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        BloodPlateletRequestUser bpr = BloodPlateletRequestUserDB.getUserBloodRequestsbyID(lblRID.Text);

        estabTransactions = BplTransactionUserToEstabDB.getAllbpTransactionUserToEsta();
        List <BplTransactionUserToEstab> allestabTransactions = new List <BplTransactionUserToEstab>();

        foreach (BplTransactionUserToEstab m in estabTransactions)
        {
            if (m.bpMatchUsrEstID.bpRequestID.bplUserRequestID == bpr.bplUserRequestID && m.status == "accepted")
            {
                allestabTransactions.Add(m);
            }
        }
        BplTransactionUserToEstab selectedTransaction = allestabTransactions[GridView2.PageSize * GridView2.PageIndex + e.RowIndex];

        selectedTransaction.status = "cancelled";
        BplTransactionUserToEstabDB.updateBPTranscationUserToEstab(selectedTransaction);

        BloodPlateletRequestUser selectedRequest = bpr;

        selectedRequest.unitMatched = selectedRequest.unitMatched - selectedTransaction.unit;
        BloodPlateletRequestUserDB.updateBloodPlateles(selectedRequest);
        Server.Transfer("DonateAndRequest.aspx");
    }
Beispiel #9
0
 public BPMatchUserToUser(BloodPlateletRequestUser bplRequestID, Users matchUID, string st, int dist)
 {
     bplUsrRequestID = bplRequestID;
     matchID         = matchUID;
     status          = st;
     distance        = dist;
 }
Beispiel #10
0
    //cancel the current donation which are not yet accept by any individual
    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        BloodPlateletRequestUser bpr = BloodPlateletRequestUserDB.getUserBloodRequestsbyID(lblRID.Text);

        userTransactions = BplTransactionUserToUserDB.getAllbpTransUserToUser();
        List <BplTransactionUserToUser> alluserTransactions = new List <BplTransactionUserToUser>();

        foreach (BplTransactionUserToUser btu in userTransactions)
        {
            if (btu.bpMatchUsrUsr.bplUsrRequestID.bplUserRequestID == bpr.bplUserRequestID && btu.status == "accepted")
            {
                alluserTransactions.Add(btu);
            }
        }
        BplTransactionUserToUser selectedTransaction = alluserTransactions[GridView1.PageSize * GridView1.PageIndex + e.RowIndex];

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

        BloodPlateletRequestUser selectedRequest = bpr;

        selectedRequest.unitMatched = selectedRequest.unitMatched - selectedTransaction.unitsPossible;
        BloodPlateletRequestUserDB.updateBloodPlateles(selectedRequest);
        Server.Transfer("DonateAndRequest.aspx");
    }
    public static List <BloodPlateletRequestUser> getAllUserBloodRequests()
    {
        List <BloodPlateletRequestUser> userrequests = new List <BloodPlateletRequestUser>();

        try
        {
            SqlCommand command = new SqlCommand("Select * from BloodPlateletRequestUser");
            command.Connection = connection;
            connection.Open();
            SqlDataReader reader = command.ExecuteReader();
            while (reader.Read())
            {
                BloodPlateletRequestUser br = new BloodPlateletRequestUser();
                br.bplUserRequestID = reader["bplUserRequestID"].ToString();
                br.Units            = Convert.ToInt32(reader["unitsRequird"]);
                br.unitMatched      = Convert.ToInt32(reader["unitsMatched"]);
                Establishment est = EstablishmentDB.getEstablishmentByID(reader["establishmentID"].ToString());
                br.Establishment = est;
                Users u = UsersDB.getUserbyID(reader["requestorID"].ToString());
                br.requestorID     = u;
                br.Type            = reader["bloodGroup"].ToString();
                br.bloodOrPlatelet = reader["bloodOrPlatelet"].ToString();
                br.Status          = reader["status"].ToString();
                br.Time            = Convert.ToDateTime(reader["requestDate"]);
                userrequests.Add(br);
            }
            reader.Close();
        }
        finally
        {
            connection.Close();
        }
        return(userrequests);
    }
Beispiel #12
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();
        }
    }
Beispiel #13
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");
    }
    public static int updateBloodPlateles(BloodPlateletRequestUser u)
    {
        int result;

        try
        {
            SqlCommand command = new SqlCommand("Update BloodPlateletRequestUser set status=@status where bplUserRequestID=@bplUserRequestID");
            command.Parameters.AddWithValue("@bplUserRequestID", u.bplUserRequestID);
            command.Parameters.AddWithValue("@unitsMatched", u.unitMatched);
            command.Parameters.AddWithValue("@status", u.Status);
            command.Connection = connection;
            connection.Open();
            result = command.ExecuteNonQuery();
        }
        finally
        {
            connection.Close();
        }
        return(result);
    }
Beispiel #15
0
    protected void GridView2_SelectedIndexChanged(object sender, EventArgs e)
    {
        BloodPlateletRequestUser         bpr = BloodPlateletRequestUserDB.getUserBloodRequestsbyID(lblRID.Text);
        List <BplTransactionUserToEstab> allestabTransactions = new List <BplTransactionUserToEstab>();

        estabTransactions = BplTransactionUserToEstabDB.getAllbpTransactionUserToEsta();

        foreach (BplTransactionUserToEstab m in estabTransactions)
        {
            if (m.bpMatchUsrEstID.bpRequestID.bplUserRequestID == bpr.bplUserRequestID && m.status == "accepted")
            {
                allestabTransactions.Add(m);
            }
        }
        //take the session for individual chatting
        BplTransactionUserToEstab selectedTransaction = allestabTransactions[GridView2.PageSize * GridView2.PageIndex + GridView2.SelectedIndex];

        Session["echat"] = selectedTransaction.bpMatchUsrEstID.matchID.ID;
        Session["chat"]  = null;
        Server.Transfer("IndividualChatUU.aspx");
    }
Beispiel #16
0
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        BloodPlateletRequestUser bpr = BloodPlateletRequestUserDB.getUserBloodRequestsbyID(lblRID.Text);

        userTransactions = BplTransactionUserToUserDB.getAllbpTransUserToUser();
        List <BplTransactionUserToUser> alluserTransactions = new List <BplTransactionUserToUser>();

        foreach (BplTransactionUserToUser btu in userTransactions)
        {
            if (btu.bpMatchUsrUsr.bplUsrRequestID.bplUserRequestID == bpr.bplUserRequestID && btu.status == "accepted")
            {
                alluserTransactions.Add(btu);
            }
        }
        BplTransactionUserToUser selectedTransaction = alluserTransactions[GridView1.PageSize * GridView1.PageIndex + GridView1.SelectedIndex];

        //take the session for individual chatting
        Session["chat"]  = selectedTransaction.bpMatchUsrUsr.matchID.userId;
        Session["echat"] = null;
        Server.Transfer("IndividualChatUU.aspx");
    }
Beispiel #17
0
    protected void gvRequestInfo_SelectedIndexChanged(object sender, EventArgs e)
    {
        lblOutput.Text = "";
        BloodPlateletRequestUser         selectedRequest      = userRequests[gvRequestInfo.PageSize * gvRequestInfo.PageIndex + gvRequestInfo.SelectedIndex];
        List <BplTransactionUserToEstab> allEstabTransactions = BplTransactionUserToEstabDB.getAllbpTransactionUserToEsta();
        List <BplTransactionUserToUser>  allUserTransactions  = BplTransactionUserToUserDB.getAllbpTransUserToUser();
        int flag = 0;

        foreach (BplTransactionUserToEstab m in allEstabTransactions)
        {
            if (m.bpMatchUsrEstID.bpRequestID.bplUserRequestID == selectedRequest.bplUserRequestID && m.status == "accepted")
            {
                estabsAccepted.Add(m);
                flag = 1;
            }
        }
        foreach (BplTransactionUserToUser m in allUserTransactions)
        {
            if (m.bpMatchUsrUsr.bplUsrRequestID.bplUserRequestID == selectedRequest.bplUserRequestID && m.status == "accepted")
            {
                usersAccepted.Add(m);
                flag = 2;
            }
        }

        if (flag == 0)
        {
            lblOutput.Text       = "Sorry no matches found yet!";
            panelMatches.Visible = false;
        }

        else
        {
            panelMatches.Visible = true;
            gvAcceptedEstabRequests.DataSource = estabsAccepted;
            gvAcceptedEstabRequests.DataBind();
            gvAcceptedUserRequests.DataSource = usersAccepted;
            gvAcceptedUserRequests.DataBind();
        }
    }
    protected void btnUserSubmit_Click(object sender, EventArgs e)
    {
        Establishment             currentEstab    = (Establishment)Session["establishment"];
        List <BPMatchUserToEstab> allUserRequests = BPMatchUserToEstabDB.getAllbpMatchUserToEsta();
        List <BPMatchUserToEstab> userRequests    = new List <BPMatchUserToEstab>();

        foreach (BPMatchUserToEstab m in allUserRequests)
        {
            if (m.matchID.ID == currentEstab.ID && m.status == "pending" && m.bpRequestID.unitMatched < m.bpRequestID.Units)
            {
                userRequests.Add(m);
            }
        }
        BPMatchUserToEstab        currentMatch   = userRequests[gvUserRequests.PageSize * gvUserRequests.PageIndex + gvUserRequests.SelectedIndex];
        BloodPlateletRequestUser  r              = currentMatch.bpRequestID;
        BplTransactionUserToEstab newTransaction = new BplTransactionUserToEstab();
        int donateUnits = Convert.ToInt32(tbxUserUnits.Text);

        if (donateUnits > (currentMatch.bpRequestID.Units - currentMatch.bpRequestID.unitMatched))
        {
            lblUserOutput.Text = "Please enter a valid amount";
        }
        else
        {
            currentMatch.status = "accepted";
            BPMatchUserToEstabDB.updateBPMatchUserToEstab(currentMatch);
            newTransaction.bpMatchUsrEstID = currentMatch;
            newTransaction.unit            = donateUnits;
            newTransaction.status          = "accepted";
            BplTransactionUserToEstabDB.insertbptrans(newTransaction);
            r.unitMatched = r.unitMatched + donateUnits;
            BloodPlateletRequestUserDB.updateBloodPlateles(r);
            lblOutput.Text        = "Donation successfully accepted!";
            pnlAcceptUser.Visible = false;
            tbxUserUnits.Text     = "";
            Server.Transfer("IncomingRequests.aspx");
        }
    }
Beispiel #19
0
    protected void gvUser_SelectedIndexChanged(object sender, EventArgs e)
    {
        Panel2.Visible         = true;
        Panelusertrans.Visible = true;
        lblee.Visible          = false;
        pendinglist            = new List <BloodPlateletRequestUser>();
        u      = UsersDB.getUserbyEmail(Session["email"].ToString());
        bplist = BloodPlateletRequestUserDB.getUserBloodRequestsbyUserID(u.userId);
        foreach (BloodPlateletRequestUser b in bplist)
        {
            if (b.Status == "pending")
            {
                pendinglist.Add(b);
            }
        }
        int num = pendinglist.Count;

        lbleu.Visible = false;
        BloodPlateletRequestUser bpr = pendinglist[gvUser.PageSize * gvUser.PageIndex + gvUser.SelectedIndex];

        lblAmountshow.Text = bpr.Units.ToString();
        lblBT.Text         = bpr.Type;
        lblEst.Text        = bpr.Establishment.Name;
        DateTime dt = System.DateTime.Parse(bpr.Time.ToString());

        lblRD.Text  = string.Format("{0:dd/MM/yyyy}", dt);
        lblRID.Text = bpr.bplUserRequestID;
        lblDT.Text  = bpr.bloodOrPlatelet;
        List <BplTransactionUserToEstab> allestabTransactions = new List <BplTransactionUserToEstab>();
        List <BplTransactionUserToUser>  alluserTransactions  = new List <BplTransactionUserToUser>();

        estabTransactions = BplTransactionUserToEstabDB.getAllbpTransactionUserToEsta();
        userTransactions  = BplTransactionUserToUserDB.getAllbpTransUserToUser();
        int notrans = 0;

        //check the current user transaction which are accept
        foreach (BplTransactionUserToUser btu in userTransactions)
        {
            if (btu.bpMatchUsrUsr.bplUsrRequestID.bplUserRequestID == bpr.bplUserRequestID && btu.status == "accepted")
            {
                alluserTransactions.Add(btu);
            }
        }
        foreach (BplTransactionUserToUser btu in userTransactions)
        {
            if (btu.bpMatchUsrUsr.bplUsrRequestID.bplUserRequestID == bpr.bplUserRequestID && btu.status == "Complete")
            {
                notrans = 1;
                break;
            }
        }

        foreach (BplTransactionUserToEstab m in estabTransactions)
        {
            if (m.bpMatchUsrEstID.bpRequestID.bplUserRequestID == bpr.bplUserRequestID && m.status == "accepted")
            {
                allestabTransactions.Add(m);
            }
        }
        foreach (BplTransactionUserToEstab m in estabTransactions)
        {
            if (m.bpMatchUsrEstID.bpRequestID.bplUserRequestID == bpr.bplUserRequestID && m.status == "Complete")
            {
                notrans = 2;
                break;
            }
        }
        if (notrans == 1 || notrans == 2)
        {
            btnCancel.Visible = false;
        }
        else
        {
            btnCancel.Visible = true;
        }
        if (alluserTransactions.Count == 0)
        {
            lbleu.Visible          = true;
            Panelusertrans.Visible = false;
            lbleu.Visible          = true;
            lbleuh.Visible         = true;
        }
        else
        {
            Panelusertrans.Visible = true;
            lbleu.Visible          = false;
            lbleuh.Visible         = true;
            GridView1.DataSource   = alluserTransactions;
            GridView1.DataBind();
        }
        if (allestabTransactions.Count == 0)
        {
            lblee.Visible         = true;
            lbleeh.Visible        = true;
            Panelesttrans.Visible = false;
        }
        else
        {
            Panelesttrans.Visible = true;
            lblee.Visible         = false;
            lbleeh.Visible        = true;
            GridView2.DataSource  = allestabTransactions;
            GridView2.DataBind();
        }
    }
Beispiel #20
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)));
        }
        //}
    }