public UnitsOfMeasurementAssociationsToolTDS.AssociatedUnitsDataTable GetAssociations()
        {
            associations = (UnitsOfMeasurementAssociationsToolTDS.AssociatedUnitsDataTable)Session["associationsDummy"];
            if (associations == null)
            {
                associations = (UnitsOfMeasurementAssociationsToolTDS.AssociatedUnitsDataTable)Session["associations"];
            }

            return associations;
        }
        protected void AssociationsEmptyFix(GridView grdView)
        {
            if (grdView.Rows.Count == 0)
            {
                int companyId = Int32.Parse(hdfCompanyId.Value);
                UnitsOfMeasurementAssociationsToolTDS.AssociatedUnitsDataTable dt = new UnitsOfMeasurementAssociationsToolTDS.AssociatedUnitsDataTable();
                dt.AddAssociatedUnitsRow(-1, -1, "", false, false, companyId, false, false,  "");
                Session["associationsDummy"] = dt;

                grdView.DataBind();
            }

            // Normally executes at all postbacks
            if (grdView.Rows.Count == 1)
            {
                UnitsOfMeasurementAssociationsToolTDS.AssociatedUnitsDataTable dt = (UnitsOfMeasurementAssociationsToolTDS.AssociatedUnitsDataTable)Session["associationsDummy"];
                if (dt != null)
                {
                    // Hide row
                    grdView.Rows[0].Visible = false;
                    grdView.Rows[0].Controls.Clear();
                }
            }
        }
        private void StepAssociationsProcessGrid()
        {
            string associationsList = "";

            if (grdAssociations.Rows.Count > 0)
            {
                foreach (GridViewRow row in grdAssociations.Rows)
                {
                    // Save associations
                    int associationsId = Int32.Parse(grdAssociations.DataKeys[row.RowIndex].Values["AssociationsID"].ToString());
                    bool selected = ((CheckBox)row.FindControl("cbxSelected")).Checked;
                    bool byDefault = ((CheckBox)row.FindControl("cbxByDefault")).Checked;

                    UnitsOfMeasurementAssociationsToolAssociatedUnits unitsOfMeasurementAssociationsToolAssociatedUnits = new UnitsOfMeasurementAssociationsToolAssociatedUnits(unitsOfMeasurementAssociationsToolTDS);
                    unitsOfMeasurementAssociationsToolAssociatedUnits.Update(associationsId, byDefault, selected);

                    // Get List of Associations
                    if (selected)
                    {
                        associationsList = associationsList + "    - " + ((Label)row.FindControl("lblDescription")).Text ;

                        if (byDefault)
                        {
                            associationsList = associationsList + ", DEFAULT";
                        }
                        associationsList = associationsList + "\n";
                    }
                }
            }

            hdfAssociationsList.Value = associationsList;
            Session["unitsOfMeasurementAssociationsToolTDS"] = unitsOfMeasurementAssociationsToolTDS;
            Session["associations"] = unitsOfMeasurementAssociationsToolTDS.AssociatedUnits;
            associations = unitsOfMeasurementAssociationsToolTDS.AssociatedUnits;
        }
        // ////////////////////////////////////////////////////////////////////////
        // STEP2 - ASSOCIATIONS - METHODS
        //
        private void StepAssociationsIn()
        {
            // Set instruction
            Label instruction = (Label)this.Master.FindControl("lblInstruction");
            instruction.Text = "Please select the Units you want to associate with the module " + hdfModule.Value + " and set one as default";

            // Load Data
            if (hdfLoadDataFirstTime.Value == "True")
            {
                int companyId = Int32.Parse(hdfCompanyId.Value);
                UnitsOfMeasurementAssociationsToolAssociatedUnits unitsOfMeasurementAssociationsToolAssociatedUnits = new UnitsOfMeasurementAssociationsToolAssociatedUnits(unitsOfMeasurementAssociationsToolTDS);
                unitsOfMeasurementAssociationsToolAssociatedUnits.LoadAll(hdfModule.Value, companyId);
                hdfLoadDataFirstTime.Value = "False";
            }

            // ... Store tables
            Session["unitsOfMeasurementAssociationsToolTDS"] = unitsOfMeasurementAssociationsToolTDS;
            Session["associations"] = unitsOfMeasurementAssociationsToolTDS.AssociatedUnits;
            associations = unitsOfMeasurementAssociationsToolTDS.AssociatedUnits;

            grdAssociations.DataBind();
        }
        // ////////////////////////////////////////////////////////////////////////
        // INITIAL EVENTS
        //
        protected void Page_Load(object sender, EventArgs e)
        {
            // Register client scripts
            this.RegisterClientScripts();

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

                // Validate query string
                if ((string)Request.QueryString["source_page"] == null)
                {
                    Response.Redirect("./../../error_page.aspx?error=" + "Invalid query string in unitsOfMeasurement_module_association.aspx");
                }

                // Tag Page
                hdfCompanyId.Value = Convert.ToInt32(Session["companyID"]).ToString();
                Session.Remove("associationsDummy");
                hdfLoadDataFirstTime.Value = "True";

                // If coming from
                // ... employee_navigator.aspx
                if (Request.QueryString["source_page"] == "lm")
                {
                    int companyId = Int32.Parse(hdfCompanyId.Value);

                    // ... Initialize tables
                    unitsOfMeasurementAssociationsToolTDS = new UnitsOfMeasurementAssociationsToolTDS();
                    Session["unitsOfMeasurementAssociationsToolTDS"] = unitsOfMeasurementAssociationsToolTDS;
                }

                // StepSection1In
                wzUnitsOfMeasurement.ActiveStepIndex = 0;
                StepBeginIn();
            }
            else
            {
                // Restore tables
                unitsOfMeasurementAssociationsToolTDS = (UnitsOfMeasurementAssociationsToolTDS)Session["unitsOfMeasurementAssociationsToolTDS"];
                associations = unitsOfMeasurementAssociationsToolTDS.AssociatedUnits;
            }
        }