// 焦點專欄 - 內容 public ActionResult FocusContent(int?focusTypeID, int?ID, int?pagingID) { if (!focusTypeID.HasValue || !ID.HasValue) { return(RedirectToAction("EventLatest")); } //======語系取得======== string langCd = GetLang(); //====================== FocusRepository repo = new FocusRepository(); FocusNewsContent model = repo.GetContentByID((int)focusTypeID, (int)ID, langCd); if (pagingID != null) { model.PagingID = (int)pagingID; var pagFirst = model.Data.PagingList.Where(s => s.ID == (int)pagingID).FirstOrDefault(); if (pagFirst == null) { return(RedirectToAction("FocusList", new { focusTypeID })); } pagFirst.Current = "current"; } else { if (model.Data.PagingList.Count > 0) { model.Data.PagingList.First().Current = "current"; } } //=瀏覽記錄==================== DataTable d_log; string err_msg = ""; DB.Log_Insert(ID.ToString(), "Focus"); d_log = DB.Log_List(ref err_msg, ID.ToString(), "Focus"); ViewData["log_count"] = d_log.Rows.Count.ToString(); //============================ return(View(model)); }
/// <summary> /// 內容 /// </summary> /// <param name="id"></param> /// <param name="lagCode"></param> /// <returns></returns> public FocusNewsContent GetContentByID(int focusTypeID, int id, string lagCode) { FocusNewsContent result = new FocusNewsContent(); using (var db = new TCGDB(_connectionString)) { var sourceList = db.FOCUS .AsEnumerable() .Where(s => (string.IsNullOrEmpty(lagCode) ? true : s.LANG_ID == lagCode) && s.STATUS == "Y" && s.CATE_ID == focusTypeID) .OrderByDescending(o => o.SORT) .OrderByDescending(s => s.C_DATE) .ToList(); var source = sourceList.Where(s => s.ID == id).FirstOrDefault(); if (source == null) { throw new Exception("無法取得活動內容,是否已被移除."); } result.Data = new FocusNewsData() { ID = source.ID, Title = source.C_TITLE, Img = GetMainImg(source.ID), PagingList = GetPagingListByID(source.ID), PublishDateString = source.C_DATE.Value.ToString("yyyy-MM-dd"), }; result.Data.Remark = GetFirstPagingRemark(result.Data.PagingList); int dataIndex = sourceList.IndexOf(source); int lastDataIndex = sourceList.Count - 1; result.PreviousIDStr = dataIndex == 0 ? "" : sourceList[(dataIndex - 1)].ID.ToString(); result.NextIDStr = dataIndex == lastDataIndex ? "" : sourceList[(dataIndex + 1)].ID.ToString(); } result.FocusCateInfo = GetFocusCateByID(focusTypeID, lagCode); return(result); }