Ejemplo n.º 1
0
        // 焦點專欄 - 內容
        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));
        }
Ejemplo n.º 2
0
        /// <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);
        }