YNICTE/FO/Controllers/BoardController.cs

123 lines
5.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using NP.Model;
namespace NP.FO.Controllers
{
public class BoardController : FOOpenBaseController
{
public ActionResult List(VMCC vm)
{
vm.BM = Dao.Get<BoardMaster>("board.bms", new System.Collections.Hashtable() { { "bmno", ViewBag.MenuPage.bmno } }).FirstOrDefault();
if (vm.BM == null)
{
return Redirect("/");
}
if (vm.BM.isuseopening == 1)
{
vm.BMOs = Dao.Get<BoardMasterOpening>("board.bmos", vm.BM.bmno);
}
vm.pagerowcount = vm.pagerowcount < 1 ? 10 : vm.pagerowcount;
var ht = SetHash(vm);
ht.Add("bmno", vm.BM.bmno);
ht.Add("isopen", 1);
ht.Add("opno", vm.opno);
ht.Add("getcontents", 1);
ht.Add("scc", vm.scc);
ht.Add("qna", SUserInfo.UserNo);
vm.Boards = Dao.Get<Board>("board.bs", ht);
vm.pagetotalcount = GetCount(vm.Boards.FirstOrDefault());
vm.pageviewcount = vm.Boards.Count();
//보기,쓰기 페이지번호 가져오기
if (!string.IsNullOrEmpty(ViewBag.MenuPage.imagecode))
{
vm.boardvpno = (GetMENUPAGES.Where(w => w.refcode == (ViewBag.MenuPage.imagecode+";;;;;;").Split(';')[0]).FirstOrDefault() ?? new MenuPage()).pno;
vm.boardwpno = (GetMENUPAGES.Where(w => w.refcode == (ViewBag.MenuPage.imagecode+";;;;;;").Split(';')[1]).FirstOrDefault() ?? new MenuPage()).pno;
}
return View(vm);
}
[ActionName("View")]
public ActionResult BoardView(VMCC vm)
{
if (!string.IsNullOrEmpty(Request.Url.ToString().Split('?')[1].Split('&')[1].Split('=')[1]))
{
vm.BNo = Convert.ToInt32(Request.Url.ToString().Split('?')[1].Split('&')[1].Split('=')[1]);
}
vm.Board = Dao.Get<Board>("board.bs", new System.Collections.Hashtable() { { "bno", vm.BNo },{ "getcontents",1 } }).First();
if(vm.Board.bmtype != 0)
{
if (SUserInfo.UserNo < 1) { return Redirect("/Account/Index"); }
if ((vm.Board.issecr == 1 && vm.Board.cno != SUserInfo.UserNo) && (vm.Board.issecr == 1 && vm.Board.pcno != ViewBag.SSUserNo)) { return Redirect("/");}
}
if (vm.Board.cno != SUserInfo.UserNo)
{
Dao.Save("board.bd.read", vm.BNo);
}
vm.FileList = new List<File>() { };
if (vm.Board.fgno != null)
{
vm.FileList = GetFiles(vm.Board.fgno.Value);
}
//보기,쓰기 페이지번호 가져오기
if (!string.IsNullOrEmpty(ViewBag.MenuPage.imagecode))
{
vm.boardpno = (GetMENUPAGES.Where(w => w.refcode == (ViewBag.MenuPage.imagecode + ";;;;;;").Split(';')[0]).FirstOrDefault() ?? new MenuPage()).pno;
vm.boardwpno = (GetMENUPAGES.Where(w => w.refcode == (ViewBag.MenuPage.imagecode + ";;;;;;").Split(';')[1]).FirstOrDefault() ?? new MenuPage()).pno;
}
if (vm.Board.isreply == 1)
{
vm.BoardCMTs = Dao.Get<BoardCMT>("board.boardcmts", vm.Board.bno);
}
return View(vm);
}
public ActionResult Write(VMCC vm)
{
if (SUserInfo.UserNo < 1) { return Redirect("/Account/Index?ru="+Request.Url.PathAndQuery.Replace("&", "-")); }
vm.BMOs = new List<BoardMasterOpening>() { };
vm.Board = new Board() { pbno = vm.PBNo };
if (vm.BNo > 0)
{
vm.Board = Dao.Get<Board>("board.bs", new System.Collections.Hashtable() { { "bno", vm.BNo }, { "getcontents", 1 } }).First();
if (vm.Board.isuseopening == 1)
{
vm.BMOs = Dao.Get<BoardMasterOpening>("board.bmos", vm.Board.bmno);
}
}
else
{
if ((vm.PBNo ??0)> 0)
{
vm.Board.psubject = Dao.Get<Board>("board.bs", new System.Collections.Hashtable() { { "bno", vm.PBNo } }).First().subject;
}
vm.BM = Dao.Get<BoardMaster>("board.bms", new System.Collections.Hashtable() { { "bmno", ViewBag.MenuPage.bmno } }).First();
vm.Board.isreply = vm.BM.isreply;
vm.Board.isuseopening = vm.BM.isuseopening;
vm.Board.bmno = vm.BM.bmno;
if (vm.BM.isuseopening == 1)
{
vm.BMOs = Dao.Get<BoardMasterOpening>("board.bmos", vm.BM.bmno);
}
}
if (vm.Board.issecr == 1 && vm.Board.cno != SUserInfo.UserNo) { return Redirect("/"); }
vm.FileList = new List<File>() { };
if (vm.Board.fgno != null)
{
vm.FileList = GetFiles(vm.Board.fgno.Value);
}
//보기,쓰기 페이지번호 가져오기
if (!string.IsNullOrEmpty(ViewBag.MenuPage.imagecode))
{
vm.boardpno = (GetMENUPAGES.Where(w => w.refcode == (ViewBag.MenuPage.imagecode + ";;;;;;").Split(';')[0]).FirstOrDefault() ?? new MenuPage()).pno;
vm.boardvpno = (GetMENUPAGES.Where(w => w.refcode == (ViewBag.MenuPage.imagecode + ";;;;;;").Split(';')[1]).FirstOrDefault() ?? new MenuPage()).pno;
}
if (vm.Board.isreply == 1 && vm.Board.bno > 0)
{
vm.BoardCMTs = Dao.Get<BoardCMT>("board.boardcmts", vm.Board.bno);
}
return View(vm);
}
}
}