4. DotNetNote.Dul 프로젝트에서 마우스 오른쪽 버튼 클릭 후 추가 > 클래스를 클릭해 BoardLibrary.cs라는 이름으로 클래스 파일을 생성하고, 다음과 같이 코드를 작성한다. 참고로 이 코드는 C:\ASP.NET\Dul 프로젝트에서 작성한 BoardLibrary.cs 파일의 내용을 그대로 가져온 후 네임스페이스만 바꿔서 사용해도 무관하다.
▼ BoardLibrary.cs
using System;
using System.IO;
namespace DotNetNote.Dul
{
public class BoardLibrary
{
#region 각 글의 Step별 들여쓰기 처리
/// <summary>
/// 각 글의 Step별 들여쓰기 처리
/// </summary>
/// <param name=“objStep”>1, 2, 3</param>
/// <returns>Re 이미지를 포함한 Step만큼 들여쓰기</returns>
public static string FuncStep(object objStep)
{
int intStep = Convert.ToInt32(objStep);
string strTemp = String.Empty;
if (intStep == 0)
{
strTemp = String.Empty;
}
else
{
for (int i = 0; i < intStep; i++)
{
strTemp = String.Format(
“<img src=\“{0}\” height=\“{1}\” width=\“{2}\”>“
, ”/images/blank.gif”, “0”, (intStep * 15));
}
strTemp += “<img src=\“/images/re.gif\”>“;
}
return strTemp;
}
#endregion
#region 댓글 개수를 표현하는 메서드
/// <summary>
/// 댓글 개수를 표현하는 메서드
/// </summary>
/// <param name=“objCommentCount”>댓글 수</param>
/// <returns>댓글 이미지와 함께 숫자 표시</returns>
public static string ShowCommentCount(object objCommentCount)
{
string strTemp = ””;
try
{
if (Convert.ToInt32(objCommentCount) > 0)
{
strTemp = “<img src=\“/images/dnn/commentcount.gif\” />“;
strTemp += ”(” + objCommentCount.ToString() + ”)”;
}
}
catch (Exception)
{
strTemp = ””;
}
return strTemp;
}
#endregion
#region 24시간 내에 올라온 글 new 이미지 표시하기
/// <summary>
/// 24시간 내에 올라온 글 new 이미지 표시하기
/// </summary>
public static string FuncNew(object strDate)
{
if (strDate != null)
{
if (!String.IsNullOrEmpty(strDate.ToString()))
{
DateTime originDate = Convert.ToDateTime(strDate);
TimeSpan objTs = DateTime.Now - originDate;
string newImage = ””;
if (objTs.TotalMinutes < 1440)
{
newImage = “<img src=\“/images/dnn/new.gif\”>“;
}
return newImage;
}
}
return ””;
}
#endregion
#region 넘어온 날짜 형식이 오늘 날짜면 시간 표시
/// <summary>
/// 넘어온 날짜 형식이 오늘 날짜면 시간 표시,
/// 그렇지 않으면 날짜 표시
/// </summary>
public static string FuncShowTime(object date)
{
if (date != null)
{
if (!String.IsNullOrEmpty(date.ToString()))
{
string strPostDate =
Convert.ToDateTime(date).ToString(“yyyy-MM-dd”);
if (strPostDate == DateTime.Now.ToString(“yyyy-MM-dd”))
{
return Convert.ToDateTime(date).ToString(“hh:mm:ss”);
}
else
{
return strPostDate;
}
}
}
return ”-”;
}
#endregion
#region ConvertToFileSize() 함수
/// <summary>
/// 파일 크기를 계산해서 알맞은 단위로 변환해줌(바이트 수)
/// </summary>
public static string ConvertToFileSize(int intByte)
{
int intFileSize = Convert.ToInt32(intByte);
string strResult = ””;
if (intFileSize >= 1048576)
{
strResult = string.Format(”{0:F} MB”, (intByte / 1048576));
}
else
{
if (intFileSize >= 1024)
{
strResult = string.Format(”{0} KB”, (intByte / 1024));
}
else
{
strResult = intByte + ” Byte(s)”;
}
}
return strResult;
}
#endregion
#region IsPhoto() 함수
/// <summary>
/// 파일 확장자를 확인해서 파일이 이미지 파일인지 검사
/// </summary>
/// <param name=“strFileNameTemp”>확장자를 포함한 파일(Test.png)</param>
/// <returns>이미지 확장자이면 true 그렇지 않으면 false</returns>
public static bool IsPhoto(string strFileNameTemp)
{
string ext =
Path.GetExtension(strFileNameTemp).Replace(”.”, ””).ToLower();
bool blnResult = false;
if (ext == “gif” || ext == “jpg” || ext == “jpeg” || ext == “png”)
{
blnResult = true;
}
else
{
blnResult = false;
}
return blnResult;
}
#endregion
#region 파일 다운로드 기능
/// <summary>
/// 파일 다운로드 기능
/// 주의: 각 필드에 NULL 값이 들어가면 에러남
/// </summary>
public static string FuncFileDownSingle(
int id, string strFileName, string strFileSize)
{
if (strFileName.Length > 0)
{
return “<a href=\“/DotNetNote/BoardDown?Id=”
+ id.ToString() + “\”>“
+ DownloadType(strFileName, strFileName + ”(”
+ ConvertToFileSize(Convert.ToInt32(strFileSize)) + ”)”)
+ “</a>“;
}
else
{
return ”-”;
}
}
#endregion
#region DownloadType() 함수
/// <summary>
/// 다운로드할 파일의 확장자를 통해 아이콘을 결정
/// </summary>
/// <param name=“strFileName”>파일 이름</param>
/// <param name=“altString”>alt 메시지로 넣을 문자열</param>
public static string DownloadType(string strFileName, string altString)
{
string strFileExt =
Path.GetExtension(strFileName).Replace(”.”, ””).ToLower();
string r = ””;
switch (strFileExt)
{
case “gif”:
r = “<img src=‘/images/ext/ext_gif.gif’ border=‘0’ alt=‘”
+ altString + ”’>“; break;
case “jpg”:
r = “<img src=‘/images/ext/ext_jpg.gif’ border=‘0’ alt=‘”
+ altString + ”’>“; break;
case “jpeg”:
r = “<img src=‘/images/ext/ext_jpeg.gif’ border=‘0’ alt=‘”
+ altString + ”’>“; break;
case “png”:
r = “<img src=‘/images/ext/ext_png.gif’ border=‘0’ alt=‘”
+ altString + ”’>“; break;
case “ppt”:
r = “<img src=‘/images/ext/ext_ppt.gif’ border=‘0’ alt=‘”
+ altString + ”’>“; break;
case “psd”:
r = “<img src=‘/images/ext/ext_psd.gif’ border=‘0’ alt=‘”
+ altString + ”’>“; break;
case “txt”:
r = “<img src=‘/images/ext/ext_txt.gif’ border=‘0’ alt=‘”
+ altString + ”’>“; break;
case “zip”:
r = “<img src=‘/images/ext/ext_zip.gif’ border=‘0’ alt=‘”
+ altString + ”’>“; break;
default:
r = “<img src=‘/images/ext/ext_unknown.gif’ border=‘0’ alt=‘”
+ altString + ”’>“; break;
}
return r;
}
#endregion
}
}