// 套程式-線上報名
        public ActionResult List(int?page)
        {
            page = page ?? 1;
            ApplyListViewModel model = new ApplyListViewModel();

            using (var applymodule = new ApplyFrontModule())
            {
                model = applymodule.GetList((int)page);
            }
            return(View(model));
        }
        /// <summary>
        /// [前台] 列表分頁處理
        /// </summary>
        /// <param name="data"></param>
        /// <param name="page"></param>
        /// <returns></returns>
        public ApplyListViewModel ListPagination(ref ApplyListViewModel model, int page, int pageSize)
        {
            int startRow = 0;
            PaginationResult paginationResult = null;

            if (pageSize > 0)
            {
                //分頁
                startRow         = (page - 1) * pageSize;
                paginationResult = new PaginationResult()
                {
                    CurrentPage = page,
                    DataCount   = model.ListData.Count(),
                    PageSize    = pageSize,
                    FirstPage   = 1,
                    LastPage    = model.ListData.Count() == 0 ? 1 : Convert.ToInt32(Math.Ceiling((decimal)model.ListData.Count() / pageSize))
                };
            }
            model.ListData   = model.ListData.Skip(startRow).Take(pageSize).ToList();
            model.Pagination = paginationResult;
            return(model);
        }
        public ApplyListViewModel GetList(int page, bool getContent = false)
        {
            ApplyListViewModel model = new ApplyListViewModel();
            var data = DB.OLACT
                       .AsEnumerable()
                       .OrderByDescending(o => o.PUB_DT_STR).ThenByDescending(a => a.SQ)
                       .Select(s => new ApplyListViewDataModel()
            {
                ID = s.ID,
                ActivityDateTimeDescription = s.ACT_DATE_DESC,
                ApplyDateRange = string.Concat(s.APPLY_DATE_BEGIN, "~", s.APPLY_DATE_END),
                Sort           = s.SQ,
                Title          = s.ACTITLE,
                Remark         = s.ACT_CONTENT
            })
                       .ToList();

            using (var actModule = new ActivityModule())
            {
                foreach (var d in data)
                {
                    d.GroupApplyLimit = DB.OLACTGROUP.Where(o => o.MAP_ACT_ID == d.ID).Sum(o => o.TEAM_APPLY_LIMIT);
                    d.Registered      = DB.APPLY.Where(g => g.MAP_ACT_ID == d.ID).Count();
                    d.ActivityStatus  = actModule.ActivityStatusCheckByID((int)d.ID);
                }
            }
            model.ListData = data;
            foreach (var d in data)
            {
                PublicMethodRepository.HtmlDecode(d);
            }

            if (!getContent)
            {
                model = this.ListPagination(ref model, page, Convert.ToInt32(PublicMethodRepository.GetConfigAppSetting("DefaultPageSize")));
            }
            return(model);
        }