/// <summary>
        /// 依照條件取得書籍資料
        /// </summary>
        /// <param name="arg"></param>
        /// <returns></returns>
        public List <BMS.Model.BookSearchResult> GetBookByCondition(BMS.Model.BookSearchArg arg)
        {
            DataTable dt = new DataTable();

            using (SqlConnection conn = new SqlConnection(this.GetDBConnectionString())){
                conn.Open();
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;
                cmd.Parameters.Add(new SqlParameter("@BookName", arg.BookName ?? string.Empty));
                cmd.Parameters.Add(new SqlParameter("@BookClass", arg.BookClass ?? string.Empty));
                cmd.Parameters.Add(new SqlParameter("@BookKeeper", arg.BookKeeper ?? string.Empty));
                cmd.Parameters.Add(new SqlParameter("@BookStatus", arg.BookStatus ?? string.Empty));
                cmd.CommandText = @"SELECT BOOK_DATA.BOOK_ID AS BookId,
                                        BOOK_CLASS.BOOK_CLASS_NAME AS BookClass,
                                        BOOK_DATA.BOOK_NAME AS BookName,
                                        CONVERT(varchar(10), BOOK_DATA.BOOK_BOUGHT_DATE, 111) AS BookBoughtDate,
                                        BOOK_CODE.CODE_NAME AS BookStatus,
                                        CONCAT(MEMBER_M.USER_ENAME, '(', MEMBER_M.USER_CNAME, ')') AS BookKeeper
                                    FROM BOOK_DATA
	                                    INNER JOIN BOOK_CLASS
                                            ON BOOK_DATA.BOOK_CLASS_ID = BOOK_CLASS.BOOK_CLASS_ID
                                        INNER JOIN BOOK_CODE
                                            ON BOOK_DATA.BOOK_STATUS = BOOK_CODE.CODE_ID
	                                    LEFT JOIN MEMBER_M
                                            ON BOOK_DATA.BOOK_KEEPER = MEMBER_M.USER_ID
                                    WHERE (UPPER(BOOK_DATA.BOOK_NAME) LIKE UPPER('%' + @BookName + '%') OR @BookName = '') AND
                                          (BOOK_DATA.BOOK_CLASS_ID = @BookClass OR @BookClass = '') AND
                                          (BOOK_DATA.BOOK_KEEPER = @BookKeeper OR @BookKeeper = '') AND
                                          (BOOK_DATA.BOOK_STATUS = @BookStatus OR @BookStatus = '') AND
                                           BOOK_DATA.BOOK_BOUGHT_DATE < GETDATE()
                                    ORDER BY BookBoughtDate DESC";
                SqlDataAdapter sqlAdapter = new SqlDataAdapter(cmd);
                sqlAdapter.Fill(dt);
                conn.Close();
            }
            return(this.MapBookDataToList(dt));
        }
 public List <BMS.Model.BookSearchResult> GetBookByCondition(BMS.Model.BookSearchArg arg)
 {
     return(bookDao.GetBookByCondition(arg));
 }
 public JsonResult SearchBook(BMS.Model.BookSearchArg arg)
 {
     return(Json(bookService.GetBookByCondition(arg)));
 }