/// <summary> /// /// </summary> /// <param name="articleNo"></param> /// <param name="visiteNo"></param> /// <returns></returns> public ArticleDetailT GetArticleDetailByArticleNo(int articleNo, int visiteNo) { string query = @"select A.[NO], A.MEMBER_NO, A.MAIN_IMAGE, A.CODE_NO, (SELECT TOP 1 TD.TITLE FROM TRANSLATION_DETAIL TD WITH(NOLOCK) WHERE TD.ARTICLE_NO = A.NO ORDER BY NO ASC ) AS TITLE, (SELECT TOP 1 TD.CONTENTS FROM TRANSLATION_DETAIL TD WITH(NOLOCK) WHERE TD.ARTICLE_NO = A.NO ORDER BY NO ASC ) AS CONTENTS, (SELECT TOP 1 TD.TAG FROM TRANSLATION_DETAIL TD WITH(NOLOCK) WHERE TD.ARTICLE_NO = A.NO ORDER BY NO ASC ) AS TAG, A.COPYRIGHT, A.VISIBILITY, A.VIEWCNT, A.TEMP, A.REG_IP, A.REG_DT, A.REG_ID, A.RECOMMEND_YN, A.RECOMMEND_DT, M.NAME as MEMBER_NAME, M.PROFILE_PIC as MEMBER_PROFILE_PIC, case F.FILE_TYPE when 'img' then F.RENAME else F.IMG_NAME end as MAINIMGNAME, (SELECT COUNT(0) FROM LIKES WHERE ARTICLE_NO = A.[NO]) AS LIKE_CNT, (SELECT COUNT(0) FROM ARTICLE_COMMENT WHERE ARTICLE_NO = A.[NO]) AS COMMENT_CNT, (SELECT COUNT(0) FROM LIKES WHERE ARTICLE_NO = A.[NO] AND MEMBER_NO = :visiteNo) AS IS_LIKES, '0' as UPLOAD_CNT, '0' as DRAFT_CNT, A.VIDEO_URL from ARTICLE A with(nolock) inner join MEMBER M with(nolock) on M.[NO] = A.MEMBER_NO inner join ARTICLE_FILE F with(nolock) on F.[NO] = A.MAIN_IMAGE where A.[NO] = :articleNo"; using (ISession session = NHibernateHelper.OpenSession()) { IQuery queryObj = session.CreateSQLQuery(query).AddEntity(typeof(ArticleDetailT)); queryObj.SetParameter("articleNo", articleNo); queryObj.SetParameter("visiteNo", visiteNo); ArticleDetailT detailT = queryObj.UniqueResult <ArticleDetailT>(); session.Flush(); return(detailT); } }
/// <summary> /// /// </summary> /// <param name="no"></param> /// <param name="goReply"></param> /// <returns></returns> public ActionResult Viewer2(string no = "", string goReply = "N") { //ILog log = LogManager.GetLogger("APP"); //log.Info("Viewer2_inof"); //log.Warn("Viewer2_err"); int articleNo = 0; var visitorNo = profileModel.UserNo; ViewBag.GoReply = goReply; ArticleDetailT detail = new ArticleDetailT(); if (Int32.TryParse(no, out articleNo)) { //조회수 증가 방지 if (Request.Cookies[no] == null) { Response.Cookies[no].Value = no; Response.Cookies[no].Expires = DateTime.Now.AddDays(1); //뷰 업데이트 } detail = _articleDac.GetArticleDetailByArticleNo(articleNo, visitorNo); ViewBag.MetaDescription = detail.Contents; detail.Contents = new HtmlFilter().PunctuationEncode(detail.Contents); detail.Contents = new HtmlFilter().ConvertContent(detail.Contents); if ((detail.MemberNo != visitorNo && profileModel.UserLevel < 50) && detail.Visibility.ToUpper() == "N") { return(Content("<script>alert('비공개 처리된 게시물 입니다.'); location.href='/';</script>")); } ViewBag.chkStlCnt = _articleFileDac.GetSTLFileList(articleNo).Count; ViewBag.Files = _articleFileDac.GetFileList(articleNo); ViewBag.MainImg = detail.MainImgName; ViewBag.ListCnt = 5; ViewBag.ListList = null; //리스트 이름 목록 } else { } ViewBag.VisitorNo = visitorNo; ViewBag.No = no; ViewBag.CodeNo = detail.CodeNo; ViewBag.Class = "bdB mgB15"; ViewBag.WrapClass = "bgW"; return(View(detail)); }