public MainViewController(string connectionString) { booksRepo = new BooksRepository(connectionString); readersRepo = new ReadersRepository(connectionString); authorsRepo = new AuthorsRepository(connectionString); CommandsHandler = new Dictionary <string, Func <MainViewArgs, object> > { #region booksCRUD { "get_books", x => { string res = ""; foreach (var book in booksRepo.GetAllBooks()) { res += (book.ToString() + "\n"); } return(res); } }, { "get_book", x => { return(booksRepo.GetBook(x.BookId).ToString()); } }, { "delete_book", x => { return(GetBooLReturnMessage(booksRepo.DeleteBook(x.BookId))); } }, { "insert_book", x => { return(GetBooLReturnMessage(booksRepo.InsertBook(x.Book))); } }, { "update_book", x => { return(GetBooLReturnMessage(booksRepo.UpdateBook(x.Book))); } }, #endregion #region booksAuthors { "AddAuthorToBook", x => { return(GetBooLReturnMessage(booksRepo.AddAuthorToBook(x.AuthorId, x.BookId))); } }, { "DeleteAuthorFromBook", x => { return(GetBooLReturnMessage(booksRepo.DeleteAuthorFromBook(x.AuthorId, x.BookId))); } }, { "GetAuthorsOfBook", x => { string res = ""; foreach (var author in booksRepo.GetAuthorsOfBook(x.BookId)) { res += (author.ToString() + "\n"); } return(res); } }, #endregion #region booksReaders { "AddReaderToBook", x => { return(GetBooLReturnMessage(booksRepo.AddReaderToBook(x.ReaderId, x.BookId))); } }, { "DeleteReaderFromBook", x => { return(GetBooLReturnMessage(booksRepo.DeleteReaderFromBook(x.ReaderId, x.BookId))); } }, { "GetReadersOfBook", x => { string res = ""; foreach (var reader in booksRepo.GetReadersOfBook(x.BookId)) { res += (reader.ToString() + "\n"); } return(res); } }, #endregion #region authorsCRUD { "get_authors", x => { string res = ""; foreach (var author in authorsRepo.GetAllAuthors()) { res += (author.ToString() + "\n"); } return(res); } }, { "get_author", x => { return(authorsRepo.GetAuthor(x.AuthorId).ToString()); } }, { "delete_author", x => { return(GetBooLReturnMessage(authorsRepo.DeleteAuthor(x.AuthorId))); } }, { "insert_author", x => { return(GetBooLReturnMessage(authorsRepo.InsertAuthor(x.Author))); } }, { "update_author", x => { return(GetBooLReturnMessage(authorsRepo.UpdateAuthor(x.Author))); } }, { "get_authorsbooks", x => { string res = ""; foreach (var book in authorsRepo.GetAuthorsBooks(x.AuthorId)) { res += (book.ToString() + "\n"); } return(res); } }, #endregion #region readersCRUD { "get_readers", x => { string res = ""; foreach (var reader in readersRepo.GetAllReaders()) { res += (reader.ToString() + "\n"); } return(res); } }, { "get_reader", x => { return(readersRepo.GetReader(x.ReaderId).ToString()); } }, { "delete_reader", x => { return(GetBooLReturnMessage(readersRepo.DeleteReader(x.ReaderId))); } }, { "insert_reader", x => { return(GetBooLReturnMessage(readersRepo.InsertReader(x.Reader))); } }, { "update_reader", x => { return(GetBooLReturnMessage(readersRepo.UpdateReader(x.Reader))); } }, { "get_readersbooks", x => { string res = ""; foreach (var book in readersRepo.GetReadersBooks(x.ReaderId)) { res += (book.ToString() + "\n"); } return(res); } }, #endregion { "add_random_authors", x => { return(GetBooLReturnMessage(authorsRepo.AddRandomAuthorsToDB(x.RandomCount))); } }, { "search_books", x => { string res = ""; foreach (var book in booksRepo.SearchBooks(x.SearchBookParameters.title, x.SearchBookParameters.minPagesCount, x.SearchBookParameters.maxPagesCount)) { res += (book.ToString() + "\n"); } return(res); } }, { "search_authors", x => { string res = ""; foreach (var author in authorsRepo.SearchAuthors(x.SearchAuthorParameters.Signature, x.SearchAuthorParameters.Name, x.SearchAuthorParameters.MinDate)) { res += (author.ToString() + "\n"); } return(res); } }, { "search_readers", x => { string res = ""; foreach (var reader in readersRepo.SearchReaders(x.SearchReaderParameters.Favouritegenre, x.SearchReaderParameters.Name, x.SearchReaderParameters.Surname)) { res += (reader.ToString() + "\n"); } return(res); } }, }; }