public ActionResult ApplyEdit(int?ID, int?page, int?groupId, string sort, string qry)
        {
            page = page ?? 1;
            if (!ID.HasValue)
            {
                return(RedirectToAction("ApplyList"));
            }
            ApplyDetailsDataModel model = new ApplyDetailsDataModel();

            model.ActivityID = (int)ID;
            model.ListData.Filter.CurrentPage = (int)page;
            model.ListData.Filter.GroupID     = groupId;
            model.ListData.Filter.SortColumn  = sort ?? string.Empty;
            model.ListData.Filter.QueryString = qry == null ? string.Empty : qry.Trim();

            using (ApplyMaintainModule module = new ApplyMaintainModule())
            {
                model = module.GetApplyDetails(model);
            }
            return(View(model));
        }
Example #2
0
        public ApplyDetailsDataModel GetApplyDetails(ApplyDetailsDataModel details)
        {
            details.GroupList = GetActivityGroupListByID(details.ActivityID);
            var activityData = DB.OLACT.Where(o => o.ID == details.ActivityID).FirstOrDefault();

            if (activityData == null)
            {
                throw new Exception("無喇取得該活動賽事,是否已被移除?");
            }

            details.ActivityID        = activityData.ID;
            details.ActivityDateRange = activityData.ACT_DATE_DESC;
            details.ActivityName      = activityData.ACTITLE;

            var applyLstData =
                DB.APPLY
                .Where(w => w.MAP_ACT_ID == details.ActivityID)
                .AsEnumerable()
                .Select(s => new ApplyDetailsListDataModel()
            {
                ID                   = s.ID,
                ApplyDate            = s.BUD_DT.ConvertDateTimeTo10CodeString(),
                ApplyNumber          = s.APPLY_IDEN_NUM,
                ApplySuccessStatus   = s.APPLY_SUCCESS,
                ApplyTeamName        = s.TEAM_NM,
                ApplyTeamMemberCount = DB.APPLY_MEMBER.Where(o => o.MAP_APPLY_ID == s.ID && o.REF_ACT_ID == details.ActivityID).Count(),
                GroupID              = s.MAP_ACT_GUP_ID,
                ContactPhone         = s.CONTACT_PHONE
            })
                .ToList();

            details.ListData.Result.Data             = applyLstData;
            details.GroupInfo.RegisteredSuccessCount = DB.APPLY.Where(o => o.MAP_ACT_ID == details.ActivityID && o.APPLY_SUCCESS == true).Count();
            details.GroupInfo.RegisteredCount        = DB.APPLY.Where(g => g.MAP_ACT_ID == details.ActivityID).Count();
            details.GroupInfo.GroupApplyLimit        = DB.OLACTGROUP.Where(o => o.MAP_ACT_ID == details.ActivityID).Sum(m => m.TEAM_APPLY_LIMIT);

            if (details.ListData.Filter.GroupID.HasValue)
            {
                applyLstData = applyLstData.Where(o => o.GroupID == details.ListData.Filter.GroupID).ToList();
                details.ListData.Result.Data = applyLstData;
                //若要在上方訊息區塊秀出對應的組別資料 移除下面註解
                //details.GroupInfo = GetGroupInfoByID(details.ActivityID, (int)details.ListData.Filter.GroupID);
            }

            if (!string.IsNullOrEmpty(details.ListData.Filter.QueryString))
            {
                details.ListData.Result.Data = applyLstData.Where(o => o.ApplyTeamName.Contains(details.ListData.Filter.QueryString)).ToList();
            }

            //排序
            switch (details.ListData.Filter.SortColumn)
            {
            case "sortApplyStatus/asc":
                details.ListData.Result.Data = details.ListData.Result.Data.OrderBy(o => o.ApplySuccessStatus).ThenByDescending(o => o.ApplyDate).ToList();
                break;

            case "sortApplyStatus/desc":
                details.ListData.Result.Data = details.ListData.Result.Data.OrderByDescending(o => o.ApplySuccessStatus).ThenByDescending(o => o.ApplyDate).ToList();
                break;

            default:
                details.ListData.Result.Data = details.ListData.Result.Data.OrderByDescending(o => o.ApplyDate).ThenByDescending(g => g.ApplySuccessStatus).ToList();
                break;
            }
            PaginationResult pagination;
            var tempData = details.ListData.Result.Data;

            //分頁
            this.ListPageList(details.ListData.Filter.CurrentPage, ref tempData, out pagination);
            details.ListData.Result.Data       = tempData;
            details.ListData.Result.Pagination = pagination;
            foreach (var d in details.ListData.Result.Data)
            {
                PublicMethodRepository.HtmlDecode(d);
            }
            return(details);
        }