//Sortable List
        public DataTable GetPolicyHotelOtherGroupItemDataTableItems(int id, int policyGroupId, string filter, string sortField, int sortOrder, int page, ref PolicyHotelOtherGroupItemDataTableItemsVM policyHotelOtherGroupItemDataTableItemsVM)
        {
            //query db
            string adminUserGuid = HttpContext.Current.User.Identity.Name.Split(new[] { '|' })[0];

            DataSet policyHotelOtherGroupItemDataTableItems = new DataSet();

            string connectionStringName = Settings.getConnectionStringName();

            using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString))
            {
                using (SqlCommand cmd = new SqlCommand("spDesktopDataAdmin_SelectPolicyHotelOtherGroupItemDataTableRows_v1", conn))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@PolicyOtherGroupHeaderId", id);
                    cmd.Parameters.AddWithValue("@PolicyGroupId", policyGroupId);
                    cmd.Parameters.AddWithValue("@Filter", filter);
                    cmd.Parameters.AddWithValue("@SortField", sortField);
                    cmd.Parameters.AddWithValue("@SortOrder", sortOrder);
                    cmd.Parameters.AddWithValue("@PageNumber", page);
                    cmd.Parameters.AddWithValue("@AdminUserGuid", adminUserGuid);
                    conn.Open();

                    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                    adapter.Fill(policyHotelOtherGroupItemDataTableItems);
                }
            }

            if (policyHotelOtherGroupItemDataTableItems.Tables[1] != null)
            {
                DataTable dt = policyHotelOtherGroupItemDataTableItems.Tables[1];

                int totalRecords = (from DataRow dr in dt.Rows select(int) dr["Record Count"]).FirstOrDefault();
                int pageSize     = 16;

                policyHotelOtherGroupItemDataTableItemsVM.PageIndex  = page;
                policyHotelOtherGroupItemDataTableItemsVM.PageSize   = pageSize;
                policyHotelOtherGroupItemDataTableItemsVM.TotalCount = totalRecords;
                policyHotelOtherGroupItemDataTableItemsVM.TotalPages = (int)Math.Ceiling(totalRecords / (double)pageSize);
            }

            return(policyHotelOtherGroupItemDataTableItems.Tables[0]);
        }
        //GET: /PolicyHotelOtherGroupItemDataTableItem/List
        public ActionResult List(int id, int policyGroupId, string filter, int?page, string sortField, int?sortOrder)
        {
            PolicyHotelOtherGroupItemDataTableItemsVM policyHotelOtherGroupItemDataTableItemsVM = new PolicyHotelOtherGroupItemDataTableItemsVM();

            //Check Policy Exists
            PolicyGroup policyGroup = new PolicyGroup();

            policyGroup = policyGroupRepository.GetGroup(policyGroupId);
            if (policyGroup == null)
            {
                ViewData["ActionMethod"] = "ListGet";
                return(View("RecordDoesNotExistError"));
            }

            policyHotelOtherGroupItemDataTableItemsVM.PolicyGroup = policyGroup;

            //Check PolicyOtherGroupHeader Exists
            PolicyOtherGroupHeader policyOtherGroupHeader = new PolicyOtherGroupHeader();

            policyOtherGroupHeader = policyOtherGroupHeaderRepository.GetPolicyOtherGroupHeader(id);
            if (policyOtherGroupHeader == null)
            {
                ViewData["ActionMethod"] = "ListGet";
                return(View("RecordDoesNotExistError"));
            }

            policyHotelOtherGroupItemDataTableItemsVM.PolicyOtherGroupHeader = policyOtherGroupHeader;

            //Set Access Rights
            policyHotelOtherGroupItemDataTableItemsVM.HasWriteAccess = false;
            RolesRepository rolesRepository = new RolesRepository();

            if (rolesRepository.HasWriteAccessToPolicyGroup(policyGroupId))
            {
                policyHotelOtherGroupItemDataTableItemsVM.HasWriteAccess = true;
            }

            //SortField + SortOrder settings
            if (string.IsNullOrEmpty(sortField))
            {
                //Dynamically generated in proc
                sortField = string.Empty;
            }
            ViewData["CurrentSortField"] = sortField;

            if (sortOrder == 1)
            {
                ViewData["NewSortOrder"]     = 0;
                ViewData["CurrentSortOrder"] = 1;
            }
            else
            {
                ViewData["NewSortOrder"]     = 1;
                ViewData["CurrentSortOrder"] = 0;
            }

            DataTable policyHotelOtherGroupItemDataTableItems = policyHotelOtherGroupItemDataTableItemRepository.GetPolicyHotelOtherGroupItemDataTableItems(
                id, policyGroup.PolicyGroupId, filter ?? "", sortField, sortOrder ?? 0, page ?? 1, ref policyHotelOtherGroupItemDataTableItemsVM);

            policyHotelOtherGroupItemDataTableItemsVM.PolicyHotelOtherGroupItemDataTableItems = policyHotelOtherGroupItemDataTableItems;

            return(View(policyHotelOtherGroupItemDataTableItemsVM));
        }