private void OnHistoryRequested(object sender, EventArgs e) { var takenBooks = ActiveUser.TakenBooks .Join(LibraryDataIO.Instance.Books, takenBook => takenBook, libraryBook => libraryBook.ID, (takenBook, libraryBook) => new { libraryBook.Title, Author = DataTransformationUtility.GetAuthorNames(libraryBook.AuthorID), Issued = $"{libraryBook.IssueDate:yyyy/MM/dd}", Returned = StringConstants.currentlyTakenString }); var bookHistory = ActiveUser.History .Join(LibraryDataIO.Instance.Books, readBook => readBook.BookID, libraryBook => libraryBook.ID, (readBook, libraryBook) => new { libraryBook.Title, Author = DataTransformationUtility.GetAuthorNames(libraryBook.AuthorID), Issued = $"{readBook.IssueDate:yyyy/MM/dd}", Returned = $"{readBook.ReturnDate:yyyy/MM/dd}" }); var history = takenBooks.Concat(bookHistory); History.Instance.historyGrid.DataSource = history.ToList(); }
private void OnSearchRequested(object sender, EventArgs e) { string[] columns = { "Title", "Author", "ISBN", "Genre", "Status" }; DataTable dtLibraryBook = DataTransformationUtility.ToDataTable(LibraryDataIO.Instance.Books); //prepare column with authors' full names dtLibraryBook.Columns.Add("Author"); foreach (DataRow row in dtLibraryBook.Rows) { row["Author"] = DataTransformationUtility.GetAuthorNames((List <int>)row["AuthorID"]); } DataTransformationUtility.EnableFiltering(dtLibraryBook, columns); Search.Instance.libraryGrid.DataSource = dtLibraryBook; Search.Instance.searchText.TextChanged += (s, a) => dtLibraryBook.DefaultView.RowFilter = $"[_RowString] LIKE '%{Search.Instance.searchText.Text}%'"; //hide unnecessary columns and rearange them foreach (DataGridViewColumn col in Search.Instance.libraryGrid.Columns) { if (((IList <string>)columns).Contains(col.Name)) { col.Visible = true; col.DisplayIndex = Array.IndexOf(columns, col.Name); } else { col.Visible = false; } } }
public ActionResult Search() { string[] columns = { "Title", "Author", "Publisher", "ISBN", "Genre", "Status" }; DataTable dtLibraryBook = DataTransformationUtility.ToDataTable(LibraryDataIO.Instance.Books); //prepare column with authors' full names dtLibraryBook.Columns.Add("Author"); foreach (DataRow row in dtLibraryBook.Rows) { row["Author"] = DataTransformationUtility.GetAuthorNames((List <int>)row["AuthorID"]); } dtLibraryBook = DataTransformationUtility.RemoveUnusedColumns(dtLibraryBook, columns); return(View(dtLibraryBook)); }