コード例 #1
0
    protected void btnCancel_Click(object sender, EventArgs e)
    {
        Users            u      = UsersDB.getUserbyEmail(Session["email"].ToString());
        List <LiveDonor> ldlist = LiveDonorDB.getLiveDonorbyuserID(u.userId);

        foreach (LiveDonor l in ldlist)
        {
            if (l.status == "not allotted")
            {
                id = l.ldonorID;
                break;
            }
        }
        if (id != null)
        {
            LiveDonor nowld = LiveDonorDB.getLiveDonorbyID(id);

            nowld.status = "cancelled";
            int num = LiveDonorDB.updateLiveDonor(nowld);
            if (num != 1)
            {
                lblDOutput.Text = "Sorry cancel Failed!";
            }
            else
            {
                lblDOutput.Text = "Your organ donation is now cancelled!";
                string DonateOrganUrl = "DonateOrgan.aspx";
                Page.Header.Controls.Add(new LiteralControl(string.Format(@" <META http-equiv='REFRESH' content=2;url={0}> ", DonateOrganUrl)));
            }
        }
        else
        {
            lblDOutput.Text = "Sorry cancel Failed!";
        }
    }
コード例 #2
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         if (Session["email"] == null)
         {
             Server.Transfer("CommonLogin.aspx");
         }
         else
         {
             Users            u          = UsersDB.getUserbyEmail(Session["email"].ToString());
             List <LiveDonor> ldLists    = LiveDonorDB.getLiveDonorbyuserID(u.userId);
             List <LiveDonor> cancellist = new List <LiveDonor>();
             foreach (LiveDonor l in ldLists)
             {
                 if (l.status == "cancelled" || l.status == "allotted")
                 {
                     cancellist.Add(l);
                 }
             }
             if (cancellist.Count == 0)
             {
                 Label1.Text = "Sorry! You don't have any transcation yet!";
                 return;
             }
             else
             {
                 Label1.Text = "We found " + cancellist.Count + " Donation History!";
                 cancellist.Reverse();
                 gvDHistory.DataSource = cancellist;
                 gvDHistory.DataBind();
             }
         }
     }
 }
コード例 #3
0
    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;
            }
        }
    }
コード例 #4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Session["email"] == null)
            {
                Server.Transfer("CommonLogin.aspx");
            }
            else
            {
                Users            u      = UsersDB.getUserbyEmail(Session["email"].ToString());
                List <LiveDonor> ldlist = LiveDonorDB.getLiveDonorbyuserID(u.userId);
                if (ldlist.Count == 0)
                {
                    Label1.Text = "Sorry! You doesn't have any current organ donation!";
                    PanelFinishRegister.Visible = false;
                }
                else
                {
                    foreach (LiveDonor l in ldlist)
                    {
                        if (l.status == "not allotted" || l.status == "allotted")
                        {
                            tempid = l.ldonorID;
                            PanelFinishRegister.Visible = true;
                            break;
                        }
                        else
                        {
                            tempid = "0";
                        }
                    }
                    if (tempid == "0")
                    {
                        Label1.Text = "Sorry! You doesn't have any current organ donation!";
                        PanelFinishRegister.Visible = false;
                    }
                    else
                    {
                        LiveDonor ld = LiveDonorDB.getLiveDonorbyID(tempid);

                        PanelFinishRegister.Visible = true;
                        lblComment.Text             = ld.comments;
                        lblDAddress.Text            = ld.doctorAddress;
                        lblDEmail.Text = ld.doctorEmail;
                        lblDoctor.Text = ld.doctorName;
                        lblDPhone.Text = Convert.ToString(ld.doctorNumber);
                        lblOrgan.Text  = ld.organType;
                        lblstatus.Text = ld.status;
                    }
                }

                List <LiveOrganMatching> lom     = LiveOrganMatchingDB.getAllMatches();
                List <LiveOrganMatching> lomshow = new List <LiveOrganMatching>();
                if (lom.Count == 0)
                {
                    lblmatchingF.Text = "Sorry! We haven't found any matching for you right now.";
                    gvMatch.Visible   = false;
                }
                else
                {
                    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;
                        gvMatch.DataSource    = lomshow;
                        gvMatch.DataBind();
                    }
                }
            }
        }
    }