/// <summary> /// This calls on the dao to get the results depending on the mode we are currently in /// </summary> /// <param name="mode"></param> /// <param name="value"></param> public void Search(Constants.SearchMode mode, string value) { MainForm main = (MainForm)this.ParentForm.MdiParent; BookDAO dao = new BookDAO(main.CurrentDatabase.FullName); this.gridBooks.DataSource = dao.SearchBooks(_mode, mode, value).Tables[0]; }
public Item(string name, Constants.SearchMode value) { _name = name; _value = value; }
/// <summary> /// Dynamically builds the query for a search on the book_data view /// </summary> /// <param name="libMode"></param> /// <param name="searchMode"></param> /// <param name="value"></param> /// <returns></returns> public DataSet SearchBooks(Constants.LibraryMode libMode, Constants.SearchMode searchMode, string value) { string baseQuery = ""; switch (libMode) { case Constants.LibraryMode.LIBRARY: baseQuery = SQL.Book.SELECT_LIBRARY; break; case Constants.LibraryMode.LOANEDBOOKS: baseQuery = SQL.Book.SELECT_LOANED_BOOKS; break; case Constants.LibraryMode.WISHLIST: baseQuery = SQL.Book.SELECT_WISHLIST; break; case Constants.LibraryMode.LOANHISTORY: baseQuery = SQL.Book.SELECT_LOAN_RECORDS; break; } switch (searchMode) { case Constants.SearchMode.NONE: //DO NOTHING break; case Constants.SearchMode.AUTHOR_LAST: baseQuery += this.like("last_name", value); break; case Constants.SearchMode.AUTHOR_FIRST: baseQuery += this.like("first_name", value); break; case Constants.SearchMode.TITLE: baseQuery += this.like("short_title", value); break; case Constants.SearchMode.ISBN: baseQuery += this.like("isbn", value); break; case Constants.SearchMode.SUBJECT: baseQuery += this.like("subject", value); break; case Constants.SearchMode.PUBLISHER: baseQuery += this.like("publisher_info", value); break; case Constants.SearchMode.BOOK_ID: baseQuery += this.equal("id", value); break; } switch (searchMode) { case Constants.SearchMode.SUBJECT: //no group by clause break; case Constants.SearchMode.BOOK_ID: //book_id is only used when getting loan records baseQuery += " GROUP BY loan_id"; break; default: baseQuery += " GROUP BY id"; break; } return(this.ExecuteQuery(baseQuery, null)); }