/// <summary>
        /// GetSortForSql
        /// </summary>
        /// <returns></returns>
        public string GetSortForSql()
        {
            string sort = "";

            // process temp table
            DataRow[] dataRowOrder = Data.Tables["WorkViewSortTemp"].Select("Deleted = 0", "Order_ ASC");
            foreach (DataRow row in dataRowOrder)
            {
                if (!(((WorkViewTDS.WorkViewSortTempRow)row).Deleted))
                {
                    int order_ = ((WorkViewTDS.WorkViewSortTempRow)row).Order_;
                    string workType = ((WorkViewTDS.WorkViewSortTempRow)row).WorkType;
                    int companyId = ((WorkViewTDS.WorkViewSortTempRow)row).COMPANY_ID;
                    int sortId = ((WorkViewTDS.WorkViewSortTempRow)row).SortID;

                    WorkTypeViewSort workTypeViewSort = new WorkTypeViewSort();
                    workTypeViewSort.LoadByWorkTypeSortId(workType, companyId, sortId);

                    WorkTypeViewSortGateway workTypeViewSortGateway = new WorkTypeViewSortGateway(workTypeViewSort.Data);

                    string tableName = workTypeViewSortGateway.GetTable_(workType, companyId, sortId);

                    if (tableName == "AM_ASSET_SEWER_SECTION") tableName = "AASS";
                    if (tableName == "LFS_WORK_FULLLENGTHLINING") tableName = "LWF";
                    if (tableName == "LFS_WORK") tableName = "LW";
                    if (tableName == "AM_ASSET_SEWER_LATERAL") tableName = "AASL";
                    if (tableName == "LFS_ASSET_SEWER_SECTION") tableName = "LASS";
                    if (tableName == "LFS_WORK_JUNCTIONLINING_SECTION") tableName = "LWJLS";
                    if (tableName == "LFS_WORK_JUNCTIONLINING_LATERAL") tableName = "LWJLL";
                    if (tableName == "LFS_WORK_REHABASSESSMENT") tableName = "LWR";
                    if (tableName == "LFS_WORK_MANHOLE_REHABILITATION") tableName = "LWMR";
                    if (tableName == "AM_ASSET_SEWER_MH") tableName = "AASMH";

                    sort = sort + tableName  + "." + workTypeViewSortGateway.GetColumn_(workType, companyId, sortId) + ", ";
                }
            }

            sort = sort.Substring(0, sort.Length - 2);

            return sort;
        }
        private void StepSortProcessGrid()
        {
            WorkViewTDS dataSet = new WorkViewTDS();
            dataSet.LFS_WORK_TYPE_VIEW_SORT.Merge(workTypeViewSort, true);
            WorkTypeViewSort model = new WorkTypeViewSort(dataSet);

            // update rows
            if (Session["workTypeViewSortDummy"] == null)
            {
                foreach (GridViewRow row in grdSort.Rows)
                {
                    int sortId = int.Parse(grdSort.DataKeys[row.RowIndex].Values["SortID"].ToString());
                    bool selected = ((CheckBox)row.FindControl("cbxSelected")).Checked;

                    int order = 0;
                    try
                    {
                        order = int.Parse(((DropDownList)row.FindControl("ddlOrder")).SelectedValue);
                    }
                    catch
                    {
                        order = 0;
                    }

                    model.Update(hdfWorkType.Value, int.Parse(hdfCompanyId.Value), sortId, order, selected);
                }

                model.Table.AcceptChanges();

                workTypeViewSort = (WorkViewTDS.LFS_WORK_TYPE_VIEW_SORTDataTable)model.Table;
                Session["workTypeViewSort"] = workTypeViewSort;
            }
        }
        private bool StepLogicNext()
        {
            Page.Validate("Logic");
            if (Page.IsValid)
            {
                // Load
                WorkViewTDS dataSet = new WorkViewTDS();
                dataSet.LFS_WORK_TYPE_VIEW_SORT.Merge(workTypeViewSort, true);
                WorkTypeViewSort model = new WorkTypeViewSort(dataSet);

                if (dataSet.LFS_WORK_TYPE_VIEW_SORT.Rows.Count <= 0)
                {
                    model.LoadByWorkTypeInView(hdfWorkType.Value, int.Parse(hdfCompanyId.Value), true);
                }

                // Store tables
                workTypeViewSort = (WorkViewTDS.LFS_WORK_TYPE_VIEW_SORTDataTable)model.Table;
                Session["workTypeViewSort"] = workTypeViewSort;
                return true;
            }
            else
            {
                return false;
            }
        }
        /// <summary>
        /// GetSortForSummary
        /// </summary>
        /// <returns></returns>
        public string GetSortForSummary()
        {
            string sort = "";

            DataRow[] dataRowOrder = Data.Tables["WorkViewSortTemp"].Select("Deleted = 0", "Order_ ASC");
            foreach (DataRow row in dataRowOrder)
            {
                if (!(((WorkViewTDS.WorkViewSortTempRow)row).Deleted))
                {
                    string workType = ((WorkViewTDS.WorkViewSortTempRow)row).WorkType;
                    int companyId = ((WorkViewTDS.WorkViewSortTempRow)row).COMPANY_ID;
                    int sortId = ((WorkViewTDS.WorkViewSortTempRow)row).SortID;

                    WorkTypeViewSort workTypeViewSort = new WorkTypeViewSort();
                    workTypeViewSort.LoadByWorkTypeSortId(workType, companyId, sortId);
                    WorkTypeViewSortGateway workTypeViewSortGateway = new WorkTypeViewSortGateway(workTypeViewSort.Data);

                    sort = sort + workTypeViewSortGateway.GetName(workType, companyId, sortId) + ", ";
                }
            }

            if (sort.Length > 2)
            {
                sort = sort.Substring(0, sort.Length - 2);
            }
            return sort;
        }