6. 마지막으로 BoardLibrary 클래스는 게시판 작성 시 주요 UI를 꾸며준다.

    ▼  Dul 프로젝트의 BoardLibrary.cs 클래스

    using System;
    using System.IO;
    
    namespace 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/dnn/blank.gif”, “0”, (intStep * 15));
                  }
                  strTemp += “<img src=\“/images/dnn/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.aspx?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 “bmp”:
                      r = “<img src=‘/images/ext/ext_bmp.gif’ border=‘0’ alt=‘”
                          + altString + ”’>“; break;
                  case “css”:
                      r = “<img src=‘/images/ext/ext_css.gif’ border=‘0’ alt=‘”
                          + altString + ”’>“; break;
                  case “gif”:
                      r = “<img src=‘/images/ext/ext_gif.gif’ border=‘0’ alt=‘”
                          + altString + ”’>“; break;
                  case “htm”:
                      r = “<img src=‘/images/ext/ext_htm.gif’ border=‘0’ alt=‘”
                          + altString + ”’>“; break;
                  case “html”:
                      r = “<img src=‘/images/ext/ext_html.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 “js”:
                      r = “<img src=‘/images/ext/ext_js.gif’ border=‘0’ alt=‘”
                          + altString + ”’>“; break;
                  case ””:
                      r = “<img src=‘/images/ext/ext_none.gif’ border=‘0’ alt=‘”
                          + altString + ”’>“; break;
                  case “png”:
                      r = “<img src=‘/images/ext/ext_png.gif’ border=‘0’ alt=‘”
                          + altString + ”’>“; break;
                  case “sql”:
                      r = “<img src=‘/images/ext/ext_sql.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
      }
    }
    

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.