Exemplo n.º 1
0
        // 最新訊息 - 新聞 公告 聲明 內容
        public ActionResult AnnouncementContent(int?ID, int?typeID)
        {
            if (!ID.HasValue || !typeID.HasValue)
            {
                return(RedirectToAction("AnnouncementLatest"));
            }
            //======語系取得========
            string langCd = GetLang();
            //======================
            AnnouncementLatestRepository repo  = new AnnouncementLatestRepository();
            AnnouncementLatestContent    mdoel = repo.GetContentByID((int)ID, (int)typeID, langCd);

            //=瀏覽記錄====================
            DataTable d_log;
            string    err_msg = "";

            DB.Log_Insert(ID.ToString(), "News");
            d_log = DB.Log_List(ref err_msg, ID.ToString(), "News");
            ViewData["log_count"] = d_log.Rows.Count.ToString();
            //============================

            return(View(mdoel));
        }
        /// <summary>
        /// 內容
        /// </summary>
        /// <param name="id"></param>
        /// <param name="langCode"></param>
        /// <returns></returns>
        public AnnouncementLatestContent GetContentByID(int id, int typeID, string langCode)
        {
            AnnouncementLatestContent result = new AnnouncementLatestContent();

            using (var db = new TCGDB(_connectionString))
            {
                var sourceList = db.NEWS
                                 .AsEnumerable()
                                 .Where(s => (string.IsNullOrEmpty(langCode) ? true : s.LANG_ID == langCode) &&
                                        s.STATUS == "Y" && s.CATE_ID == typeID)
                                 .OrderByDescending(o => o.SORT)
                                 .OrderByDescending(s => s.N_DATE)
                                 .ToList();

                var source = sourceList.Where(s => s.ID == id).FirstOrDefault();
                if (source == null)
                {
                    throw new Exception("無法取得新聞內容,是否已被移除.");
                }

                result.Data = new AnnouncementLatestData()
                {
                    ID                = source.ID,
                    Title             = source.N_TITLE,
                    Img               = GetMainImg(source.ID),
                    PublishDateString = source.N_DATE.Value.ToString("yyyy-MM-dd"),
                    CateIDInfo        = GetNewsCateByID((int)source.CATE_ID, langCode),
                    Content           = source.N_DESC
                };
                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();
            }

            return(result);
        }