public TeamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTIONDataTable GetSectionsInformation()
        {
            teamProjectTimeSection = (TeamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTIONDataTable)Session["teamProjectTimeSectionDummy"];

            if (teamProjectTimeSection == null)
            {
                teamProjectTimeSection = (TeamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTIONDataTable)Session["teamProjectTimeSection"];
            }

            return teamProjectTimeSection;
        }
        private void SectionsReinstatePostVideoProcessGrid()
        {
            TeamProjectTime2Section model = new TeamProjectTime2Section(teamProjectTime2TDS);

            // Update rows
            foreach (GridViewRow row in grdSectionsReinstatePostVideo.Rows)
            {
                string sectionId = grdSectionsReinstatePostVideo.DataKeys[row.RowIndex].Values["SectionID"].ToString();
                string flowOrderId = ((Label)row.FindControl("lblFlowOrderID")).Text;
                bool selected = ((CheckBox)row.FindControl("cbxSelected")).Checked;
                bool completed = ((CheckBox)row.FindControl("cbxCompleted")).Checked;
                int percentageOpened = Convert.ToInt32(((Label)row.FindControl("lblPercentageOpened")).Text);
                int percentageBrushed = Convert.ToInt32(((Label)row.FindControl("lblPercentageBrushed")).Text);
                DateTime? postVideo = Convert.ToDateTime(((Label)row.FindControl("lblPostVideo")).Text);

                if (selected)
                {
                    model.Update2(sectionId, completed, postVideo, selected, percentageOpened, percentageBrushed);
                }
            }

            model.Table.AcceptChanges();

            teamProjectTimeSection = (TeamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTIONDataTable)model.Table;
            Session["teamProjectTimeSection"] = teamProjectTimeSection;
            Session["teamProjectTime2TDS"] = teamProjectTime2TDS;
        }
        private void SectionsPrepAndMeasureProcessGrid()
        {
            TeamProjectTime2Section model = new TeamProjectTime2Section(teamProjectTime2TDS);

            // Update rows
            foreach (GridViewRow row in grdSections.Rows)
            {
                string sectionId = grdSections.DataKeys[row.RowIndex].Values["SectionID"].ToString();
                string flowOrderId = ((Label)row.FindControl("lblFlowOrderID")).Text;
                bool selected = ((CheckBox)row.FindControl("cbxSelected")).Checked;
                bool completed = ((CheckBox)row.FindControl("cbxCompleted")).Checked;
                DateTime? prepDate = Convert.ToDateTime(((Label)row.FindControl("lblPrepDate")).Text);

                if (selected)
                {
                    if (completed)
                    {
                        if (prepDate != tkrdpDate_.SelectedDate.Value)
                        {
                            prepDate = tkrdpDate_.SelectedDate.Value;
                        }
                    }

                    model.Update(sectionId, completed, prepDate, selected);
                }
            }

            model.Table.AcceptChanges();

            teamProjectTimeSection = (TeamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTIONDataTable)model.Table;
            Session["teamProjectTimeSection"] = teamProjectTimeSection;
            Session["teamProjectTime2TDS"] = teamProjectTime2TDS;
        }
        protected void SectionsReinstatePostVideoInformationEmptyFix(GridView grdSectionsReinstatePostVideo)
        {
            if (grdSectionsReinstatePostVideo.Rows.Count == 0)
            {
                TeamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTIONDataTable dt = new TeamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTIONDataTable();
                dt.AddLFS_TEAM_PROJECT_TIME_SECTIONRow("1", "1", false, DateTime.Now, false, 0, 0);
                Session["teamProjectTimeSectionDummy"] = dt;

                grdSectionsReinstatePostVideo.DataBind();
            }

            // Normally executes at all postbacks
            if (grdSectionsReinstatePostVideo.Rows.Count == 1)
            {
                TeamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTIONDataTable dt = (TeamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTIONDataTable)Session["teamProjectTimeSectionDummy"];
                if (dt != null)
                {
                    // Hide row
                    grdSectionsReinstatePostVideo.Rows[0].Visible = false;
                    grdSectionsReinstatePostVideo.Rows[0].Controls.Clear();
                }
            }
        }
        // ////////////////////////////////////////////////////////////////////////
        // INITIAL EVENTS
        //
        protected void Page_Load(object sender, EventArgs e)
        {
            // Register client scripts
            this.RegisterClientScripts();

            if (!IsPostBack)
            {
                // Security check
                if (!Convert.ToBoolean(Session["sgLFS_LABOUR_HOURS_FULL_EDITING"]))
                {
                    if (!(Convert.ToBoolean(Session["sgLFS_LABOUR_HOURS_OTHERS_TIMESHEETS_VIEW"]) && Convert.ToBoolean(Session["sgLFS_LABOUR_HOURS_OTHERS_TIMESHEETS_ADD"])))
                    {
                        if (!Convert.ToBoolean(Session["sgLFS_LABOUR_HOURS_OTHERS_TIMESHEETS_MANAGEMENT"]))
                        {
                            if (!Convert.ToBoolean(Session["sgLFS_LABOUR_HOURS_OTHERS_TIMESHEETS_MANAGEMENT_WED"]))
                            {
                                Response.Redirect("./../../error_page.aspx?error=" + "You are not authorized to view this page. Contact your system administrator.");
                            }
                        }
                    }
                }

                // Tag page
                Session.Remove("teamProjectTime2TDS");
                Session.Remove("sectionsReinstatePostVideoSelect");

                Session.Remove("template");
                Session.Remove("templateDummy");

                Session.Remove("teamProjectTimeDetailTemp");
                Session.Remove("teamProjectTimeDetailTempDummy");

                Session.Remove("teamProjectTimeSection");
                Session.Remove("teamProjectTimeSectionDummy");

                Session.Remove("teamProjectTimeSectionLateral");
                Session.Remove("teamProjectTimeSectionLateralDummy");

                Session.Remove("teamProjectTimeSectionMH");
                Session.Remove("teamProjectTimeSectionMHDummy");

                hdfCompanyId.Value = Session["companyID"].ToString();
                hdfBtnNext.Value = "False";

                // Initialize  variables
                lblMessage.Visible = false;

                // ... Initialize viewstate variables
                System.Configuration.AppSettingsReader appSettingReader = new System.Configuration.AppSettingsReader();
                ViewState["LHMode"] = appSettingReader.GetValue("LABOUR_HOURS_OPERATION_MODE", typeof(System.String)).ToString();
                ViewState["StepFrom"] = "Out";
                ViewState["teamProjectTimeId"] = 0;

                // ... Prepare initial data for template
                odsTemplate.SelectParameters.RemoveAt(0);
                odsTemplate.SelectParameters.Add("loginId", Convert.ToInt32(Session["loginID"]).ToString());
                odsTemplate.Select();

                // Store datasets
                teamProjectTime2TDS = new TeamProjectTime2TDS();
                Session["teamProjectTime2TDS"] = teamProjectTime2TDS;

                template = teamProjectTime2TDS.Template;
                Session["template"] = teamProjectTime2TDS.Template;

                teamProjectTimeDetailTemp = teamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_DETAIL_TEMP;
                Session["teamProjectTimeDetailTemp"] = teamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_DETAIL_TEMP;

                teamProjectTimeSection = teamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTION;
                Session["teamProjectTimeSection"] = teamProjectTimeSection;

                teamProjectTimeSectionLateral = teamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTION_LATERAL;
                Session["teamProjectTimeSectionLateral"] = teamProjectTimeSectionLateral;

                teamProjectTimeSectionMH = teamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTION_MH;
                Session["teamProjectTimeSectionMH"] = teamProjectTimeSectionMH;

                Session["sectionsReinstatePostVideoSelect"] = sectionsReinstatePostVideoSelect;

                // StepSection1In
                wzTeam.ActiveStepIndex = 0;
                StepBeginIn();
            }
            else
            {
                // Restore datasets
                teamProjectTime2TDS = (TeamProjectTime2TDS)Session["teamProjectTime2TDS"];

                template = teamProjectTime2TDS.Template;
                Session["template"] = teamProjectTime2TDS.Template;

                teamProjectTimeDetailTemp = teamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_DETAIL_TEMP;
                Session["teamProjectTimeDetailTemp"] = teamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_DETAIL_TEMP;

                teamProjectTimeSection = teamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTION;
                Session["teamProjectTimeSection"] = teamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTION;

                teamProjectTimeSectionLateral = teamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTION_LATERAL;
                Session["teamProjectTimeSectionLateral"] = teamProjectTimeSectionLateral;

                teamProjectTimeSectionMH = teamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTION_MH;
                Session["teamProjectTimeSectionMH"] = teamProjectTimeSectionMH;

                sectionsReinstatePostVideoSelect = (ArrayList)Session["sectionsReinstatePostVideoSelect"];
            }
        }
        protected void ddlFunction_SelectedIndexChanged(object sender, EventArgs e)
        {
            pnlFullLengthInstall.Visible = false;
            pnlFullLengthPrepMeasure.Visible = false;
            pnlFullLengthReinstatePostVideo.Visible = false;
            pnlSectionsManholesRehabPrep.Visible = false;
            pnlSectionsManholesRehabSpray.Visible = false;

            if (ddlTypeOfWork.SelectedValue == "Full Length")
            {
                TeamProjectTime2Section model = new TeamProjectTime2Section(teamProjectTime2TDS);

                switch (ddlFunction.SelectedValue)
                {
                    case "Install":
                        pnlFullLengthInstall.Visible = true;

                        model.LoadForFllInstall(Int32.Parse(ddlProject.SelectedValue), "Full Length Lining", tkrdpDate_.SelectedDate.Value);

                        // Store tables
                        teamProjectTimeSection = (TeamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTIONDataTable)model.Table;
                        Session["teamProjectTimeSection"] = teamProjectTimeSection;
                        Session["teamProjectTime2TDS"] = teamProjectTime2TDS;
                        grdSectionsInstall.DataBind();
                        break;

                    case "Prep & Measure":
                        pnlFullLengthPrepMeasure.Visible = true;

                        model.LoadForFllPrepAndMeasure(Int32.Parse(ddlProject.SelectedValue), "Full Length Lining", tkrdpDate_.SelectedDate.Value);

                        // Store tables
                        teamProjectTimeSection = (TeamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTIONDataTable)model.Table;
                        Session["teamProjectTimeSection"] = teamProjectTimeSection;
                        Session["teamProjectTime2TDS"] = teamProjectTime2TDS;
                        grdSections.DataBind();
                        break;

                    case "Reinstate & Post Video":
                        pnlFullLengthReinstatePostVideo.Visible = true;

                        model.LoadForFllReinstatePostVideo(Int32.Parse(ddlProject.SelectedValue), "Full Length Lining", tkrdpDate_.SelectedDate.Value);

                        // Store tables
                        teamProjectTimeSection = (TeamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTIONDataTable)model.Table;
                        Session["teamProjectTimeSection"] = teamProjectTimeSection;
                        Session["teamProjectTime2TDS"] = teamProjectTime2TDS;
                        grdSectionsReinstatePostVideo.DataBind();
                        break;
                }
            }
            else
            {
                if (ddlTypeOfWork.SelectedValue == "MH Rehab")
                {
                    TeamProjectTime2SectionMH model = new TeamProjectTime2SectionMH(teamProjectTime2TDS);
                    model.LoadByProjectIdAndUpdateDate(Convert.ToInt32(ddlProject.SelectedValue), tkrdpDate_.SelectedDate.Value, Convert.ToInt32(hdfCompanyId.Value));

                    // Store tables
                    teamProjectTimeSectionMH = (TeamProjectTime2TDS.LFS_TEAM_PROJECT_TIME_SECTION_MHDataTable)model.Table;
                    Session["teamProjectTimeSectionMH"] = teamProjectTimeSectionMH;
                    Session["teamProjectTime2TDS"] = teamProjectTime2TDS;
                    Session.Remove("teamProjectTimeSectionMHDummy");

                    switch (ddlFunction.SelectedValue)
                    {
                        case "Prep":
                            pnlSectionsManholesRehabPrep.Visible = true;
                            grdManholesRehabPrep.DataBind();
                            break;

                        case "Spray":
                            pnlSectionsManholesRehabSpray.Visible = true;
                            grdManholesRehabSpray.DataBind();
                            break;
                    }
                }
            }

            upnlFullLengthInstall.Update();
            upnlFullLengthPrepMeasure.Update();
            upnlFullLengthReinstatePostVideo.Update();
            upnlManholesRehabPrep.Update();
            upnlManholesRehabSpray.Update();
        }