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)); }
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); }