public ActionResult Index(CardsModels model) { // 注意:CardsModels 中的 MenuID 是無效的 long menuId = CardsDAO.GetMenuID(model.No); ArticleIntroModels intro = ArticleIntroDAO.GetItem(model.No); ViewBag.SiteID = model.SiteID; ViewBag.MenuID = menuId; ViewBag.Style = model.StylesID == 0 ? 1 : model.StylesID; return(View(intro)); }
public ActionResult Index(CardsModels model, string key, string type, long?typeId, int?index) { ViewBag.SiteID = model.SiteID; long menuId = CardsDAO.GetMenuID(model.No); ViewBag.Menu = MenusDAO.GetInfo(model.SiteID, menuId); ViewBag.SitePage = CardsDAO.GetPage((long)MenusDAO.GetFirstCardNo(menuId, "Article")); SitePage page = CardsDAO.GetPage(model.No); ArticleSettingModels setting = ArticleSettingDAO.GetItem(menuId); #region 文章列表是否限制會員觀看 if (setting.ReadMode == 1 && !string.IsNullOrWhiteSpace(setting.ReadModeSet)) { Member curUser = Member.Current; string IdentityName = ""; //限制身分的名稱 IEnumerable <Areas.Backend.Models.CategoryModels> listReadModeCategorie = Areas.Backend.Models.DataAccess.CategoryDAO.GetItems(IdentityType, setting.ReadModeSet); foreach (var readModeList in listReadModeCategorie) { IdentityName += readModeList.Title + "、"; } IdentityName = IdentityName.TrimEnd('、'); ViewBag.IdentityName = IdentityName; if (curUser == null) { ViewBag.CheckReadMode = false; ViewBag.IsLogin = false; } else { bool checkReadMode = ArticleDAO.ListCheckReadMode(curUser.ID, IdentityType, listReadModeCategorie); if (!checkReadMode) { ViewBag.CheckReadMode = false; } } } #endregion if (setting.PagingMode == "不分頁") { setting.PageSize = int.MaxValue; } IEnumerable <ArticleTypesModels> types = ArticleTypesDAO.GetItems(menuId); if (setting.Types != "all") { IEnumerable <long> allowTypeIds = setting.GetTypes(); types = types.Where(t => allowTypeIds.Contains(t.ID)); setting.Types = string.Join(",", types.Select(t => t.ID)); } ViewBag.Types = types; int pageIndex = index ?? 1; int totalRecord; IEnumerable <ArticleModels> items = ArticleDAO.GetItems(setting, key, type, typeId, pageIndex, out totalRecord); ViewBag.ItemTypes = ArticleDAO.GetItemTypes(items.Select(item => item.ID)); ViewBag.ItemPages = CardsDAO.GetPages(items.Select(item => item.CardNo)); ViewBag.UploadUrl = UpdFileInfo.GetVPathByMenuID(model.SiteID, menuId).TrimEnd('/') + "/"; ViewBag.Pagination = new Pagination { PageSize = setting.PageSize, PageIndex = pageIndex, TotalRecord = totalRecord }; ViewBag.Setting = setting; ViewBag.Type = type; int style = model.StylesID == 0 ? 1 : model.StylesID; // style = 6; return(View("ListStyle" + style, items)); }
/// <summary> /// 最新消息內頁, 需傳入Token /// </summary> /// <param name="data"></param> /// <returns></returns> public ApiResult <ArticlesDetailResult> Post([FromBody] ArticlesDetailRequest data) { ApiResult <ArticlesDetailResult> result = new ApiResult <ArticlesDetailResult>(); try { ArticlesDetailResultCode rcode = ArticlesDetailResultCode.Success; if (string.IsNullOrEmpty(data.SiteSN)) { rcode = ArticlesDetailResultCode.SiteNull; result.Success = false; result.Code = (int)rcode; result.Message = rcode.GetMessage(); return(result); } long SiteID = GetSiteID(data.SiteSN); if (SiteID <= 0) { rcode = ArticlesDetailResultCode.SiteNull; result.Success = false; result.Code = (int)rcode; result.Message = rcode.GetMessage(); return(result); } long menuId = CardsDAO.GetMenuID(data.CardNo); string uploadUrl = Golbal.UpdFileInfo.GetVPathByMenuID(SiteID, menuId); string uploadPath = Golbal.UpdFileInfo.GetUPathByMenuID(SiteID, menuId).TrimEnd('\\'); ArticleModels item = ArticleDAO.GetItemByCard(data.CardNo); #region 主影片 MainVision mainVisionsItem = null; if (item.isShowVideo && item.VideoID != null) { int width = 0, height = 0; string link = item.VideoID, shotUrl = item.VideoImg; if (item.VideoType == "custom") { link = uploadUrl + item.VideoID; } string imgSource = ""; if (item.VideoImgIsCustom) { ResourceImagesModels imgModel = Newtonsoft.Json.JsonConvert.DeserializeObject <ResourceImagesModels>(item.VideoImg); shotUrl = uploadUrl + imgModel.Img; imgSource = $"{uploadPath}\\{imgModel.Img}"; } else { imgSource = item.VideoImg; } GetImageWidthAndHeight(imgSource, out width, out height); mainVisionsItem = new MainVision() { Type = item.VideoType, Link = link, ImgUrl = shotUrl, ImgWidth = width, ImgHeight = height }; } #endregion #region Paragraph List <ParagraphItem> paragraphList = new List <ParagraphItem>(); if (item == null) { rcode = ArticlesDetailResultCode.ArticlesNull; result.Success = false; result.Code = (int)rcode; result.Message = rcode.GetMessage(); return(result); } else { paragraphList = GetParagraphItem(item.ID, uploadUrl, uploadPath); } #endregion #region 文章類別 IEnumerable <ArticleTypesModels> ItemTypes = ArticleDAO.GetItemTypes(item.ID); List <ArticleTypes> articleTypesItem = new List <ArticleTypes>(); foreach (var type in ItemTypes) { articleTypesItem.Add(new ArticleTypes() { Name = type.Name, Color = GetColorCode(type.Color) }); } #endregion result.Content = new ArticlesDetailResult() { Title = item.Title, IssueDate = item.IssueDate?.ToString("yyyy.MM.dd"), ArticleTypes = articleTypesItem, MainVision = mainVisionsItem, ParagraphList = paragraphList }; result.Success = true; result.Code = (int)rcode; result.Message = rcode.GetMessage(); return(result); } catch (Exception ex) { result.Code = (int)ResultCode.Exception; result.Success = false; result.Message = ex.ToString(); } return(result); }
public ActionResult Content(CardsModels model) { long menuId = CardsDAO.GetMenuID(model.No); ArticleSettingModels setting = ArticleSettingDAO.GetItem(menuId); ViewBag.Setting = setting; ArticleModels item = ArticleDAO.GetItemByCard(model.No); item.ReplyCommentSetting = setting; IEnumerable <ArticleTypesModels> types = item.GetTypes(); ViewBag.Types = types; IEnumerable <ArticleSeriesModels> series = item.GetSeries(); ViewBag.Series = series; IEnumerable <ArticleCategoryModels> readModeCategories = item.GetCategories(IdentityType); ViewBag.ReadModeCategories = readModeCategories; string uploadUrl = UpdFileInfo.GetVPathByMenuID(model.SiteID, menuId).TrimEnd('/') + "/"; RecommendHandler(item.ID, setting, uploadUrl, types); RecommendHandler2(item.ID, setting, uploadUrl, types); //string key = "AllArticleID_" + menuId; //long[] allArticleIds = HttpRuntime.Cache[key] as long[]; //if(allArticleIds == null) { // allArticleIds = ArticleDAO.GetAllIDs(menuId).ToArray(); // HttpRuntime.Cache.Add(key, allArticleIds, null, System.Web.Caching.Cache.NoAbsoluteExpiration, new TimeSpan(0, 30, 0), System.Web.Caching.CacheItemPriority.Normal, null); //} long[] allArticleIds = ArticleDAO.GetAllIDs(setting).ToArray(); int index = Array.IndexOf(allArticleIds, item.ID); ViewBag.ListSitePageIndex = (index / setting.PageSize) + 1; if (index <= 0) { ViewBag.Prev = null; } else { ArticleModels prev = ArticleDAO.GetItem(allArticleIds[index - 1]); ViewBag.Prev = prev; ViewBag.PrevSitePage = CardsDAO.GetPage(prev.CardNo); } ViewBag.ListSitePage = MenusDAO.GetListPage(menuId); if (index == allArticleIds.Length - 1) { ViewBag.Next = null; } else { ArticleModels next = ArticleDAO.GetItem(allArticleIds[index + 1]); ViewBag.Next = next; ViewBag.NextSitePage = CardsDAO.GetPage(next.CardNo); } SitePage page = CardsDAO.GetPage(model.No); long pageID = page.PageNo; ViewBag.UploadUrl = uploadUrl; ViewBag.SiteID = model.SiteID; ViewBag.SiteSN = page.SiteSN; ViewBag.MenuID = menuId; ViewBag.PageID = pageID; ViewBag.CollectionResult = MemberShipDAO.CheckMemberCollectionExist(pageID); ViewBag.CollectionCount = MemberShipDAO.GetPageCollectionCount(pageID); ViewBag.Style = model.StylesID == 0 ? 1 : model.StylesID; ArticleDAO.AddItemClicks(item.ID); int style = model.StylesID == 0 ? 1 : model.StylesID; string ViewFileName = string.Format("~/Views/Article/ContentStyle{0}.cshtml", style); if (!System.IO.File.Exists(Server.MapPath(ViewFileName))) { style = 1; } ViewFileName = string.Format("~/Views/Article/ContentStyle{0}.cshtml", style); return(View(ViewFileName, item)); }