protected void lnkBtnReturn_Click(object sender, EventArgs e)
    {
        bool          lb_complete = true;
        woApprovalBLL apprvLogic  = new woApprovalBLL();

        WorkOrder.WOapprovalDataTable aprvDT = apprvLogic.GetWOApprovalDataByWOandProj(li_wonum, ls_proj);

        foreach (WorkOrder.WOapprovalRow aprvDR in aprvDT)
        {
            lb_complete = true;
            if (Convert.ToBoolean(aprvDR["wapr_required"]) && !Convert.ToBoolean(aprvDR["wapr_AprvCode"]))
            {
                lb_complete = false;
                break;
            }
        }

        if (lb_complete)
        {
            woPhaseBLL woPhaseLogic = new woPhaseBLL();

            int PhaseNum = woPhaseLogic.InsertPhaseRecord(li_wonum,
                                                          ls_proj, 0, DateTime.Now, "GONG", 1,
                                                          Convert.ToInt32(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1)));

            if (PhaseNum > 0)
            {
                PhaseNum = woPhaseLogic.InsertPhaseRecord(li_wonum,
                                                          ls_proj, 0, DateTime.Now, "IMPL", 0,
                                                          Convert.ToInt32(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1)));


                WorkOrderBLL woLogic = new WorkOrderBLL();
                WorkOrder.WorkOrderDataTable WrkOrds = woLogic.GetWorkOrdersByWOnumProj(li_wonum, ls_proj);
                WorkOrder.WorkOrderRow       WrkOrd  = WrkOrds[0];

                bool lb_rtn;

                WrkOrd.word_Status   = "IMPL";
                WrkOrd.word_statFlag = 0;
                WrkOrd.word_StatNum  = PhaseNum;

                lb_rtn = woLogic.UpdateWorkOrder(WrkOrd.word_WOnum, WrkOrd.word_Proj, WrkOrd.word_StatNum,
                                                 WrkOrd.word_Status, WrkOrd.word_statFlag, WrkOrd.word_Date, WrkOrd.word_Author,
                                                 WrkOrd.word_Title, "", "", WrkOrd.word_Priority,
                                                 WrkOrd.word_Descr, WrkOrd.word_Justify, WrkOrd.word_Cmnts, WrkOrd.word_PMorSME,
                                                 WrkOrd.word_BusnOwner, WrkOrd.word_reqDueDate, WrkOrd.word_WOnum, WrkOrd.word_Proj);
            }
        }

        string ls_response = "~/WorkOrder/EditWO.aspx?word_WOnum=" + li_wonum.ToString() + "&word_Proj=" + ls_proj;

        Response.Redirect(ls_response);
    }
    protected void FormView2_ItemInserted(object sender, FormViewInsertedEventArgs e)
    {
        int    li_r2r;
        string ls_cmnts, ls_to, ls_title, ls_val2, ls_val3, ls_val4;

        if (FormView2.DataItemCount > 0)
        {
            DataRowView rowView    = (DataRowView)FormView2.DataItem;
            string      ls_val     = rowView["wrsp_uid"].ToString();
            int         li_respNum = Convert.ToInt32(rowView["wrsp_RespNum"]);
            li_r2r = Convert.ToInt32(rowView["wrsp_RespToResp"]);
            if (li_r2r == null)
            {
                li_r2r = 0;
            }

            WorkOrderBLL WOlogic = new WorkOrderBLL();
            WorkOrder.WorkOrderDataTable WOdt = WOlogic.GetWorkOrdersByWOnumProj(li_wonum, ls_proj);
            DataRow woRow = ((DataRow)(WOdt.Rows[0]));
            ls_title = woRow["word_Title"].ToString();
            if ((User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1)).ToString() == woRow["word_BusnOwner"].ToString())
            {
                ls_to = woRow["word_BusnOwner"].ToString();
            }
            else
            {
                ls_to = woRow["word_PMorSME"].ToString();
            }

            ls_val2 = woRow["wrsp_Results"].ToString();
            ls_val3 = woRow["wrsp_Consider"].ToString();
            ls_val4 = woRow["wrsp_Risks"].ToString();

            if (string.IsNullOrEmpty(ls_val2))
            {
                ls_val2 = "";
            }
            if (string.IsNullOrEmpty(ls_val3))
            {
                ls_val2 = "";
            }
            if (string.IsNullOrEmpty(ls_val4))
            {
                ls_val2 = "";
            }

            SmtpEmail mailMessage = new SmtpEmail();
            bool      lb_rtn      = mailMessage.Send(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1), ls_to, "Work Order Response - " + ls_proj
                                                     + " WO# " + ls_num + " - " + ls_title,
                                                     "WO# " + ls_num + " - " + ls_title + " requires your attention." +
                                                     " Log into the EBS Work Order Module for details. Please do not respond to this email."
                                                     + Environment.NewLine + "http://www.google.com" + Environment.NewLine + Environment.NewLine +
                                                     "The most recent comment on this work order is as follows:" + Environment.NewLine + Environment.NewLine +
                                                     "Results:" + Environment.NewLine + Environment.NewLine + ls_val2 +
                                                     Environment.NewLine + Environment.NewLine + "Considerations:" + Environment.NewLine + Environment.NewLine + ls_val3
                                                     + Environment.NewLine + Environment.NewLine + "Risks:" + Environment.NewLine + Environment.NewLine +
                                                     ls_val4, li_wonum, li_respNum, ls_proj);
        }


        //WorkOrderTableAdapters.WOresponseTableAdapter WOrespAdapter = new WorkOrderTableAdapters.WOresponseTableAdapter();
        //WorkOrder.WOresponseDataTable Responses = WOrespAdapter.GetMaxWOresponseByWOnum(Convert.ToInt32(Request.QueryString["word_WOnum"]),Convert.ToString(Request.QueryString["word_Proj"]));

        //if (Responses.Count > 0)
        //{
        //    FormView2.ChangeMode(FormViewMode.ReadOnly);
        //    woUsersBLL userLogic = new woUsersBLL();
        //    string ls_usr = userLogic.GetFullNameByID(Convert.ToInt32(Responses[0].wrsp_uid));
        //    ((Label)(FormView2.FindControl("UIDlabel"))).Text = ls_usr;
        //}

        FormView2.ChangeMode(FormViewMode.ReadOnly);
    }
    protected void FormView1_ItemInserted(object sender, FormViewInsertedEventArgs e)
    {
        int rws = e.AffectedRows;

        woPhaseBLL   woPhaseLogic = new woPhaseBLL();
        WorkOrderBLL woLogic      = new WorkOrderBLL();

        int  wonum = (woLogic.GetMaxWOnum(e.Values[3].ToString()) - 1);
        bool lb_rtn;

        //SmtpEmail mailMessage = new SmtpEmail();
        //bool lb_rtn = mailMessage.Send(e.Values["word_Author"].ToString(), e.Values["word_PMorSME"].ToString(), "Work Order Creation - " + e.Values[3].ToString()
        //    + " WO# " + wonum + " - " + e.Values["word_Title"].ToString(),
        //    "WO# " + wonum + " - " + e.Values["word_Title"].ToString() + " requires your attention." +
        //    " Log into the EBS Work Order Module for details. Please do not respond to this email.", wonum, 0, e.Values["word_Proj"].ToString());

        // Insert a WOphase record, update the WOrole table and update the WorkOrder table record as well.

        WorkOrder.WorkOrderDataTable WrkOrds = woLogic.GetWorkOrdersByWOnumProj(wonum, e.Values["word_Proj"].ToString());
        WorkOrder.WorkOrderRow       WrkOrd  = WrkOrds[0];

        int PhaseNum = woPhaseLogic.InsertPhaseRecord(wonum, WrkOrd.word_Proj, 0, DateTime.Now,
                                                      "IWOR", 0, Convert.ToInt32(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1)));

        RolesBLL roleLogic = new RolesBLL();

        lb_rtn = roleLogic.InsertWOroles(wonum, Convert.ToInt32(WrkOrd.word_Author), WrkOrd.word_Proj, "AUTH", false, true);
        lb_rtn = roleLogic.InsertWOroles(wonum, Convert.ToInt32(WrkOrd.word_BusnOwner), WrkOrd.word_Proj, "BOWN", false, true);
        lb_rtn = roleLogic.InsertWOroles(wonum, Convert.ToInt32(WrkOrd.word_PMorSME), WrkOrd.word_Proj, "PM", false, true);


        DataView dv = (DataView)ObjectDataSource1.Select();
        DataRow  dr = (DataRow)dv.Table.Rows[0];
        FormView fv = sender as FormView;

        if (fv.CurrentMode == FormViewMode.Insert)
        {
            DropDownList DropDownListPhaseStat = (DropDownList)fv.Row.FindControl("DropDownListPhaseStat");
            int          PhaseStat             = Convert.ToInt32(DropDownListPhaseStat.SelectedValue);

            if (PhaseStat == 1)
            {
                int PhaseNumb = woPhaseLogic.InsertPhaseRecord(wonum, WrkOrd.word_Proj, 0, DateTime.Now,
                                                               "WORA", 0, Convert.ToInt32(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1)));

                WrkOrd.word_Status   = "WORA";
                WrkOrd.word_statFlag = 0;
                WrkOrd.word_StatNum  = PhaseNumb;

                //DateTimePicker DTimePicker = (DateTimePicker)fv.Row.FindControl("CalendarExtender1");
                //string ls_val = DTimePicker.Value.ToString();

                //TextBox TxtBxReqDate = (TextBox)fv.Row.FindControl("word_reqDueDateTextBox");
                //TxtBxReqDate.Text = ls_val;

                //WrkOrd.word_reqDueDate = Convert.ToDateTime(DTimePicker.Value.ToString());

                lb_rtn = woLogic.UpdateWorkOrder(WrkOrd.word_WOnum, WrkOrd.word_Proj, WrkOrd.word_StatNum,
                                                 WrkOrd.word_Status, WrkOrd.word_statFlag, WrkOrd.word_Date, WrkOrd.word_Author,
                                                 WrkOrd.word_Title, WrkOrd.word_Doc.ToString(), WrkOrd.word_DocVer.ToString(), WrkOrd.word_Priority,
                                                 WrkOrd.word_Descr, WrkOrd.word_Justify, WrkOrd.word_Cmnts, WrkOrd.word_PMorSME,
                                                 WrkOrd.word_BusnOwner, WrkOrd.word_reqDueDate, WrkOrd.word_WOnum, WrkOrd.word_Proj);
            }
        }

        Response.Redirect("~/WorkOrder/Default.aspx?word_Proj=" + WrkOrd.word_Proj.ToString());
    }
    protected void  btnUpdate_Click(object sender, EventArgs e)
    {
        // First check their LDAP Password . . .
        ldapAuthentication ldapAuth = new ldapAuthentication();

        try
        {
            ldapAuth.AuthenticateUser(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1).ToString(), txtBxPassword.Text);
        }
        catch (Exception ex)
        {
            lblText     = Label1.Text;
            Label1.Text = ex.Message.ToString();//"Your LDAP UID and/or password did not authenticate. Please try again.";
            return;
        }

        lblText = Label1.Text;// = "Your LDAP UID and/or password did not authenticate. Please try again.";



        DataView dv = (DataView)ObjectDataSource1.Select();

        //string ls_val;
        //string ls_val2;
        woApprovalBLL apprvLogic = new woApprovalBLL();

        bool lb_rtn = false;

        foreach (DataRow dr in dv.Table.Rows)
        {
            if (Convert.ToInt32(dr["wapr_Approver"]) == Convert.ToInt32(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1)))
            {
                int      li_val   = Convert.ToInt32(dr["wapr_AprvNum"]);
                int      li_val1  = li_wonum;
                string   ls_val   = ls_proj;
                DateTime ldt_val  = Convert.ToDateTime(dr["wapr_AprvDate"].ToString());
                int      li_val2  = Convert.ToInt32(dr["wapr_Approver"]);
                bool     lb_val   = chkBxApproval.Checked; //Convert.ToBoolean(dr["wapr_AprvCode"]);
                DateTime ldt_val2 = DateTime.Now;
                string   ls_val2  = txtBxComments.Text;    // dr["wapr_comments"].ToString();
                bool     lb_val2  = Convert.ToBoolean(dr["wapr_required"]);
                bool     lb_val3  = Convert.ToBoolean(dr["wapr_emailFlag"]);

                lb_rtn = apprvLogic.UpdateWOAprvlRecord(li_val, li_val1, ls_val, ldt_val, li_val2, lb_val, ldt_val2, ls_val2, lb_val2, lb_val3, li_val);
                GridView1.DataBind();

                btnUpdate.Visible     = false;
                btnApprove.Visible    = false;
                lnkBtnReturn.Visible  = true;
                Label2.Visible        = false;
                Label3.Visible        = false;
                Label4.Visible        = false;
                Label5.Visible        = false;
                chkBxApproval.Visible = false;
                txtBxPassword.Visible = false;
                txtBxComments.Visible = false;
                txtBxUser.Visible     = false;

                Label1.Text = "Update was successful.";
            }
        }

        WorkOrderBLL woLogic = new WorkOrderBLL();

        WorkOrder.WorkOrderDataTable WrkOrds = woLogic.GetWorkOrdersByWOnumProj(li_wonum, ls_proj);
        WorkOrder.WorkOrderRow       WrkOrd  = WrkOrds[0];

        string    host        = Request.ServerVariables["SERVER_NAME"]; //HttpContext.Current.Request.Url.Host;
        SmtpEmail mailMessage = new SmtpEmail();

        string   ls_to       = "";
        RolesBLL WOroleLogic = new RolesBLL();

        WorkOrder.WOroleTextDisplayDataTable woRoleDT;
        woRoleDT = WOroleLogic.GetWOrolesByWOnumProj(li_wonum, ls_proj);

        foreach (WorkOrder.WOroleTextDisplayRow roleRow in woRoleDT)
        {
            if (Convert.ToBoolean(roleRow["worl_aprvl"]) == true)
            {
                ls_to = ls_to + "," + roleRow["worl_uid"].ToString();
            }
        }

        ldapClient userObject = new ldapClient();
        UserRecord ud;

        ud = userObject.SearchUser(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1));

        lb_rtn = mailMessage.Send(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1), ls_to, "GO/NoGO ACTION - " + WrkOrd.word_Proj.ToString()
                                  + " WO# " + li_wonum + " - " + WrkOrd.word_Title.ToString(),
                                  "WO# " + li_wonum + " - " + WrkOrd.word_Title.ToString() + " has received a Go/NoGo action from " +
                                  ud.FirstName.ToUpper() + " " + ud.LastName.ToUpper() + "." +
                                  " Log into the EBS Work Order Module for details." +
                                  Environment.NewLine + Environment.NewLine + "http://" + host + "/WorkOrder/EditWO.aspx?word_WOnum=" +
                                  li_wonum.ToString() + "&word_Proj=" + WrkOrd.word_Proj.ToString() + Environment.NewLine + Environment.NewLine +
                                  "The comment left on this Go/NoGo action is as follows:" +
                                  Environment.NewLine + Environment.NewLine +
                                  (Convert.ToBoolean(chkBxApproval.Checked) ? "GO! " : "NO Go! ") + Environment.NewLine + Environment.NewLine +
                                  txtBxComments.Text + Environment.NewLine + Environment.NewLine +
                                  Environment.NewLine + Environment.NewLine + "PLEASE DO NOT RESPOND TO THIS EMAIL!"
                                  , li_wonum, 0, WrkOrd.word_Proj.ToString());
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        ScriptManager SM = ((ScriptManager)(Master.FindControl("ScriptManager1")));

        SM.RegisterAsyncPostBackControl(btnAddParticipant);
        SM.RegisterAsyncPostBackControl(FormView2);
        WorkOrderBLL woLogic = new WorkOrderBLL();

        WorkOrder.WorkOrderDataTable WrkOrds = woLogic.GetWorkOrdersByWOnumProj(Convert.ToInt32(Request.QueryString["word_WOnum"]), Request.QueryString["word_Proj"].ToString());
        WorkOrder.WorkOrderRow       WrkOrd  = WrkOrds[0];
        ls_proj  = Request.QueryString["word_Proj"];
        li_wonum = Convert.ToInt32(Request.QueryString["word_WOnum"]);

        RolesBLL roleLogic = new RolesBLL();


        if (!IsPostBack)
        {
            if ((WrkOrd.word_Status == "IMPL" && WrkOrd.word_statFlag == 1) ||
                (WrkOrd.word_Status == "GONG")) // &&
            {
                if (!(WrkOrd.word_Status == "GONG" &&
                      roleLogic.IsUserApprover(Convert.ToInt32(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1)), li_wonum, ls_proj))) // AND IsUserPMorUp?RoleBLL
                {
                    FormView1.DefaultMode  = FormViewMode.ReadOnly;
                    FormView1.DataSourceID = ObjectDataSource2.ID;
                    FormView1.DataBind();
                    ddlParticipant.Enabled    = false;
                    ddlParticipant.Visible    = false;
                    ddlRole.Enabled           = false;
                    ddlRole.Visible           = false;
                    btnAddParticipant.Visible = false;
                    lblParticipant.Visible    = false;
                    lblRole.Visible           = false;
                    GridView2.Enabled         = false;
                    GridView2.Visible         = false;
                    ((LinkButton)(FormView1.FindControl("RespondButton"))).Visible = false;
                }
                else
                {
                    ((LinkButton)(FormView1.FindControl("Approvals"))).Visible = true;
                }
            }


            bool lb_rtn = false;

            WorkOrderTableAdapters.WOroleTableAdapter roleAdapter = new WorkOrderTableAdapters.WOroleTableAdapter();
            WorkOrder.WOroleDataTable roleDT = roleAdapter.GetWOroleByWOproj(li_wonum, ls_proj);
            foreach (DataRow roleRow in roleDT)
            {
                if (roleRow["worl_uid"].ToString() == WrkOrd.word_Author.ToString())
                {
                    lb_rtn = true;

                    break;
                }
            }

            if (!lb_rtn)
            {
                lb_rtn = roleLogic.InsertWOroles(li_wonum, Convert.ToInt32(WrkOrd.word_Author), ls_proj, "AUTH", false, true);
            }
            lb_rtn = false;

            foreach (DataRow roleRow in roleDT)
            {
                if (roleRow["worl_uid"].ToString() == WrkOrd.word_BusnOwner.ToString())
                {
                    lb_rtn = true;
                    break;
                }
            }

            if (!lb_rtn)
            {
                lb_rtn = roleLogic.InsertWOroles(li_wonum, Convert.ToInt32(WrkOrd.word_BusnOwner), ls_proj, "BOWN", false, true);
            }
            lb_rtn = false;
            foreach (DataRow roleRow in roleDT)
            {
                if (roleRow["worl_uid"].ToString() == WrkOrd.word_PMorSME.ToString())
                {
                    lb_rtn = true;
                    break;
                }
            }

            if (!lb_rtn)
            {
                lb_rtn = roleLogic.InsertWOroles(li_wonum, Convert.ToInt32(WrkOrd.word_PMorSME), ls_proj, "PM", false, true);
            }
            lb_rtn = false;
            //GridView2.DataBind();
        }

        woResponseBLL responseLogic = new woResponseBLL();

        if (responseLogic.GetWOresponseCountByWOandProj(li_wonum, ls_proj) > 0)
        {
            FormView2.Visible = true;
        }
        else
        {
            FormView2.Visible = false;
        }
    }
    protected void FormView1_ItemUpdated(object sender, FormViewUpdatedEventArgs e)
    {
        int        statflag;
        int        rws          = e.AffectedRows;
        woPhaseBLL woPhaseLogic = new woPhaseBLL();

        // If Phase changed (or PhaseStat is 'Completed') then a new row is needed in Phase table and WO updated with new Phase/PhaseNumber
        if (!e.NewValues["word_Status"].ToString().Equals(e.OldValues["word_Status"].ToString()) ||
            (!e.NewValues["word_statFlag"].ToString().Equals(e.OldValues["word_statFlag"].ToString()) &&
             e.NewValues["word_statFlag"].ToString().Equals("1")))
        {
            int PhaseNum = woPhaseLogic.InsertPhaseRecord(li_wonum,
                                                          ls_proj, 0, DateTime.Now, e.NewValues["word_Status"].ToString(),
                                                          Convert.ToInt32(e.NewValues["word_statFlag"].ToString()),
                                                          Convert.ToInt32(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1)));
        }

        WorkOrderBLL woLogic = new WorkOrderBLL();

        WorkOrder.WorkOrderDataTable WrkOrds = woLogic.GetWorkOrdersByWOnumProj(li_wonum, ls_proj);
        WorkOrder.WorkOrderRow       WrkOrd  = WrkOrds[0];

        //If Phase Status is 'Completed' insert a new row in Phase and update WO with new Phase/Status/PhaseNumber

        if (Convert.ToUInt32(e.NewValues["word_statFlag"]) == 1)
        {
            statflag = 0;
            string NewPhase = "";
            switch (e.NewValues["word_Status"].ToString())
            {
            case "IWOR":
                NewPhase = "WORA";
                break;

            case "WORA":
                NewPhase = "WORD";
                break;

            case "WORM":
                NewPhase = "WORA";
                break;

            case "WORD":
                NewPhase = "WOTS";
                break;

            case "WOTS":
                NewPhase = "WDEV";
                break;

            case "WDEV":
                NewPhase = "WTST";
                break;

            case "WTST":
                NewPhase = "GONG";
                break;

            case "GONG":
                NewPhase = "IMPL";
                break;

            case "IMPL":
                NewPhase = "IMPL";
                statflag = 1;
                break;

            default:

                break;
            }


            int PhaseNum = woPhaseLogic.InsertPhaseRecord(li_wonum,
                                                          ls_proj, 0, DateTime.Now, NewPhase, statflag,
                                                          Convert.ToInt32(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1)));


            WrkOrd.word_Status   = NewPhase;
            WrkOrd.word_statFlag = statflag;
            WrkOrd.word_StatNum  = PhaseNum;

            bool lb_rtn;

            lb_rtn = woLogic.UpdateWorkOrder(WrkOrd.word_WOnum, WrkOrd.word_Proj, WrkOrd.word_StatNum,
                                             WrkOrd.word_Status, WrkOrd.word_statFlag, WrkOrd.word_Date, WrkOrd.word_Author,
                                             WrkOrd.word_Title, "", "", WrkOrd.word_Priority,
                                             WrkOrd.word_Descr, WrkOrd.word_Justify, WrkOrd.word_Cmnts, WrkOrd.word_PMorSME,
                                             WrkOrd.word_BusnOwner, WrkOrd.word_reqDueDate, WrkOrd.word_WOnum, WrkOrd.word_Proj);

            string ls_to;
            if (Convert.ToString(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1)) == WrkOrd.word_PMorSME.ToString())
            {
                ls_to = WrkOrd.word_BusnOwner.ToString();
            }
            else
            {
                ls_to = WrkOrd.word_PMorSME.ToString();
            }

            string    host        = Request.ServerVariables["SERVER_NAME"]; //HttpContext.Current.Request.Url.Host;
            SmtpEmail mailMessage = new SmtpEmail();

            switch (NewPhase) // This logic makes sure that the authorizers get emails during GO/NoGO phase.
            {
            case "GONG":

                RolesBLL WOroleLogic = new RolesBLL();
                WorkOrder.WOroleTextDisplayDataTable woRoleDT;
                woRoleDT = WOroleLogic.GetWOrolesByWOnumProj(li_wonum, ls_proj);
                //woApprovalBLL apprvLogic = new woApprovalBLL();
                //WorkOrder.WOapprovalDataTable apprvlDT;
                //apprvlDT = apprvLogic.GetWOApprovalDataByWOandProj(li_wonum, ls_proj);

                // this code ensures that every approval record is created
                foreach (WorkOrder.WOroleTextDisplayRow roleRow in woRoleDT)
                {
                    if (Convert.ToBoolean(roleRow["worl_aprvl"]) == true)
                    {
                        ls_to = ls_to + "," + roleRow["worl_uid"].ToString();
                    }
                }



                lb_rtn = mailMessage.Send(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1), ls_to, "Work Order Approval - " + WrkOrd.word_Proj.ToString()
                                          + " WO# " + li_wonum + " - " + WrkOrd.word_Title.ToString(),
                                          "WO# " + li_wonum + " - " + WrkOrd.word_Title.ToString() + " requires your Go/NoGo action." +
                                          " Log into the EBS Work Order Module for details. Please do not respond to this email." +
                                          Environment.NewLine + Environment.NewLine + "http://" + host + "/WorkOrder/Approvals.aspx?word_WOnum=" +
                                          li_wonum.ToString() + "&word_Proj=" + WrkOrd.word_Proj.ToString() + Environment.NewLine + Environment.NewLine +
                                          "The most recent comment on this work order is as follows:" +
                                          Environment.NewLine + Environment.NewLine + WrkOrd.word_Cmnts.ToString(), li_wonum, 0, WrkOrd.word_Proj.ToString());

                break;

            default:

                lb_rtn = mailMessage.Send(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1), ls_to, "Work Order Modification - " + WrkOrd.word_Proj.ToString()
                                          + " WO# " + li_wonum + " - " + WrkOrd.word_Title.ToString(),
                                          "WO# " + li_wonum + " - " + WrkOrd.word_Title.ToString() + " requires your attention." +
                                          " Log into the EBS Work Order Module for details. Please do not respond to this email." +
                                          Environment.NewLine + Environment.NewLine + "http://" + host + "/WorkOrder/EditWO.aspx?word_WOnum=" +
                                          li_wonum.ToString() + "&word_Proj=" + WrkOrd.word_Proj.ToString() + Environment.NewLine + Environment.NewLine +
                                          "The most recent comment on this work order is as follows:" +
                                          Environment.NewLine + Environment.NewLine + WrkOrd.word_Cmnts.ToString(), li_wonum, 0, WrkOrd.word_Proj.ToString());

                break;
            }
        }

        if (!e.NewValues["word_PMorSME"].ToString().Equals(e.OldValues["word_PMorSME"].ToString()) ||
            !e.NewValues["word_BusnOwner"].ToString().Equals(e.OldValues["word_BusnOwner"].ToString()))
        {
            string ls_to, ls_msg;
            if (Convert.ToString(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1)) == WrkOrd.word_PMorSME.ToString())
            {
                ls_to = WrkOrd.word_BusnOwner.ToString();
            }
            else
            {
                ls_to = WrkOrd.word_PMorSME.ToString();
            }

            if (!e.NewValues["word_PMorSME"].ToString().Equals(e.OldValues["word_PMorSME"].ToString()))
            {
                ls_msg = " The Business Owner of this work order has changed.";
            }
            else
            {
                ls_msg = " The Project manager for this work order has changed. ";
            }

            string    host        = Request.ServerVariables["SERVER_NAME"]; //HttpContext.Current.Request.Url.Host;
            SmtpEmail mailMessage = new SmtpEmail();
            bool      lb_rtn      = mailMessage.Send(User.Identity.Name.Substring(User.Identity.Name.IndexOf("\\") + 1), ls_to, "Work Order Modification - " + WrkOrd.word_Proj.ToString()
                                                     + " WO# " + li_wonum + " - " + WrkOrd.word_Title.ToString(),
                                                     "WO# " + li_wonum + " - " + WrkOrd.word_Title.ToString() + " requires your attention." + ls_msg +
                                                     " Log into the EBS Work Order Module for details. Please do not respond to this email."
                                                     + Environment.NewLine + Environment.NewLine + "http://" + host + "/WorkOrder/EditWO.aspx?word_WOnum=" +
                                                     li_wonum.ToString() + "&word_Proj=" + WrkOrd.word_Proj.ToString() + Environment.NewLine + Environment.NewLine + //"http://www.google.com"
                                                     "The most recent comment on this work order is as follows:" +
                                                     Environment.NewLine + Environment.NewLine + WrkOrd.word_Cmnts.ToString(), li_wonum, 0, WrkOrd.word_Proj.ToString());
        }

        Response.Redirect("~/WorkOrder/Default.aspx?word_Proj=" + ls_proj);
    }