コード例 #1
0
        public void SelectDataRegularUserInfo(IRegularUser user)
        {
            try
            {
                Connect();
                var command = connection.CreateCommand();
                var columns = new List <string>();

                command.CommandText = "SELECT id, title, numberOfPages, ISBN, isCheckedOut, isReserved FROM librarycatalog.books WHERE isReserved = @isReserved AND isCheckedOut = @isCheckedOut";
                command.Parameters.AddWithValue("@isReserved", "No");
                command.Parameters.AddWithValue("@isCheckedOut", "No");

                MySqlDataReader reader = command.ExecuteReader();

                PrintWithColumns(reader);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                connection.Close();
            }
        }
コード例 #2
0
        public void CheckInDataBook(int bookID, IRegularUser user)
        {
            try
            {
                Connect();
                var command = connection.CreateCommand();

                command.CommandText = "UPDATE librarycatalog.books SET isCheckedOut = @isCheckedOut, isReserved = @isReserved, takenByUserID = @takenByUserID where id = @id AND isReserved = @isReserved AND isCheckedOut=@CurrentIsCheckedOut AND takenByUserID = @CurrenttakenByUserID";
                command.Parameters.AddWithValue("@id", bookID);
                command.Parameters.AddWithValue("@isCheckedOut", "No");
                command.Parameters.AddWithValue("@CurrentIsCheckedOut", "Yes");
                command.Parameters.AddWithValue("@takenByUserID", 0);
                command.Parameters.AddWithValue("@CurrenttakenByUserID", user.ID);
                command.Parameters.AddWithValue("@isReserved", "No");

                var result = command.ExecuteNonQuery();

                if (result != 0)
                {
                    Console.WriteLine("Book has been returned.");
                }
                else
                {
                    Console.WriteLine("You can't return this book.");
                }

                connection.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #3
0
 public Application(IRegister register, ILogin login, IBaseUser baseUser, IAdminUser admin, IRegularUser regular)
 {
     _register        = register;
     _login           = login;
     _baseUser        = baseUser;
     _adminFunction   = admin;
     _regularFunction = regular;
 }
コード例 #4
0
        public void Register()
        {
            Console.Write("Enter your name: ");
            var name = Console.ReadLine();

            Console.Write("Enter your last name: ");
            var lastName = Console.ReadLine();

            Console.Write("Enter your username: "******"Enter your password: "******"Confirm password: ");
            var confirmPassword = Console.ReadLine();

            _regularUser = _register.CreateUser(name, lastName, username, password, confirmPassword);
            _register.SignUp(_regularUser);
        }
コード例 #5
0
        public void SelectDataBooks(string query, string columnName, IRegularUser user)
        {
            Connect();

            var command = connection.CreateCommand();
            var columns = new List <string>();

            command.CommandText = query;
            command.Parameters.AddWithValue("@" + columnName, user.ID);
            command.ExecuteNonQuery();

            var reader = command.ExecuteReader();

            if (reader.HasRows)
            {
                PrintWithColumns(reader);
            }
            else
            {
                Console.WriteLine("You did not take any book. \n");
            }
        }
コード例 #6
0
        public void ReserveDataBook(int bookID, IRegularUser user)
        {
            try
            {
                Connect();

                var command = connection.CreateCommand();

                command.CommandText = "SELECT id FROM librarycatalog.users WHERE username = @username";
                command.Parameters.AddWithValue("@username", user.Username);
                var id = command.ExecuteScalar();

                command.CommandText = "UPDATE librarycatalog.books SET isReserved = @isReserved, reservedByUserID = @loggedInUserID where id = @id AND isCheckedOut = @isCheckedOut AND isReserved = @CurrentlyIsReserved";
                command.Parameters.AddWithValue("@id", bookID);
                command.Parameters.AddWithValue("@loggedInUserID", id);
                command.Parameters.AddWithValue("@isCheckedOut", "No");
                command.Parameters.AddWithValue("@isReserved", "Yes");
                command.Parameters.AddWithValue("@CurrentlyIsReserved", "No");
                var result = command.ExecuteNonQuery();

                if (result != 0)
                {
                    Console.WriteLine("Book has been reserved!");
                }

                else
                {
                    Console.WriteLine("This book cannot be reserved.");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
                connection.Close();
            }
        }
コード例 #7
0
        public void Login()
        {
            Console.Write("Enter your username: "******"Enter your password: ");
            var password = Console.ReadLine();

            _user = _login.SignIn(username, password);

            if (_user.Role == 0)
            {
                _regularUser = Authentication <RegularUser>(_user);
                var menu = new RegularMenu(_regularFunction, _regularUser);
                menu.Menu();
            }
            else
            {
                _adminUser = Authentication <AdminUser>(_user);
                var menu = new AdminMenu(_adminFunction, _adminUser);
                menu.Menu();
            }
        }
コード例 #8
0
        public void CheckOutDataBook(int bookID, IRegularUser user)
        {
            try
            {
                Connect();
                var command = connection.CreateCommand();

                command.CommandText = "SELECT id FROM librarycatalog.users WHERE username=@username";
                command.Parameters.AddWithValue("@username", user.Username);
                var loggedInUserID = command.ExecuteScalar();

                command.CommandText = "UPDATE librarycatalog.books SET isCheckedOut = @isCheckedOut, isReserved = @isReserved, takenByUserID = @takenByUserID, reservedByUserId = @reservedByUserId WHERE id = @id AND isReserved = @isReserved OR reservedByUserID = @takenByUserID";
                command.Parameters.AddWithValue("@id", bookID);
                command.Parameters.AddWithValue("@isCheckedOut", "Yes");
                command.Parameters.AddWithValue("@isReserved", "No");
                command.Parameters.AddWithValue("@takenByUserID", loggedInUserID);
                command.Parameters.AddWithValue("@reservedByUserID", 0);

                var result = command.ExecuteNonQuery();

                if (result != 0)
                {
                    Console.WriteLine("Book is checked out.");
                }
                else
                {
                    Console.WriteLine("Book cannot be checked out");
                }

                connection.Close();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #9
0
ファイル: Register.cs プロジェクト: simonkasp/LibraryCatalog
 public void SignUp(IRegularUser user)
 {
     _database.AddDataUser(user);
 }
コード例 #10
0
 public RegularMenu(IRegularUser regular, IRegularUser user)
 {
     _regular = regular;
     _user    = user;
 }
コード例 #11
0
 public void TakeBook(int bookID, IRegularUser user)
 {
     _database.CheckOutDataBook(bookID, user);
 }
コード例 #12
0
        public void ShowTakenBooks(IRegularUser user)
        {
            var query = "SELECT id, title, numberOfPages, ISBN FROM librarycatalog.books WHERE takenByUserID = @takenByUserID;";

            _database.SelectDataBooks(query, "takenByUserID", user);
        }
コード例 #13
0
 public void ReturnBook(int bookID, IRegularUser user)
 {
     _database.CheckInDataBook(bookID, user);
 }
コード例 #14
0
 public void ReserveBook(int bookID, IRegularUser user)
 {
     _database.ReserveDataBook(bookID, user);
 }