示例#1
0
        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();
        }
示例#2
0
        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;
                }
            }
        }
示例#3
0
        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));
        }