public void PromoteUser(string user)
            {
                string Rank = Database_Access.RankCheck(user);


                string NewRank = "";

                if (Rank == "DataViewer")
                {
                    NewRank = NewRank + "DataEditor";
                }
                else if (Rank == "DataEditor")
                {
                    NewRank = NewRank + "SuperUser";
                }
                else if (Rank == "SuperUser")
                {
                    NewRank = NewRank + "SuperAdmin";
                }
                else
                {
                    Console.WriteLine($"{user} cannot be promoted further!");
                    return;
                }

                Database_Access.Promotion(NewRank, user);
                Console.WriteLine($"{user} has been promoted to {NewRank}!");
                ListUsers();
            }
            public void EditMessage(int messageid, string receiver)
            {
                string Sender     = Username;
                string Receiver   = receiver;
                int    idtoselect = messageid;

                bool check = Database_Access.SenderCheck(Username, idtoselect);

                if (check == true)
                {
                    Console.WriteLine("Type your new message, limit 250 characters.");
                    string newcontent = Console.ReadLine();
                    Database_Access.EditMessage(newcontent, Sender, Receiver, idtoselect);
                    Console.Clear();
                    Console.WriteLine("Message editing complete!");
                    ViewHistory(receiver);
                    Message messagetoedit = Database_Access.IdRetrieve(idtoselect);
                    File_Acess.EditMessage(messagetoedit);
                }
                else
                {
                    Console.Clear();
                    Console.WriteLine("You can't edit message you haven't sent.");
                }
            }
            public void ListUsers()
            {
                var Userlist = Database_Access.Userlist();


                foreach (var user in Userlist)
                {
                    Console.WriteLine(Username + " - " + user.Rank);
                }
            }
            internal DataViewer LoginScreen()
            {
                while (true)
                {
                    Console.WriteLine("Welcome to the Messenger app. ");



                    SqlConnection dbcon = new SqlConnection(connectionString);



                    bool   UserInBase = true;
                    string Username   = "";

                    while (UserInBase == true)
                    {
                        Console.WriteLine("Please input your Username:"******"The user {Username} does not exist!");
                        }
                    }

                    Database_Access.PasswordCheck(Username);
                    using (dbcon)
                    {
                        dbcon.Open();

                        var AuthorityCheck = dbcon.Query <string>("SELECT rank FROM Users WHERE username = @username;", new { username = Username }).Single();

                        if (AuthorityCheck == "DataViewer")
                        {
                            return(new DataViewer(Username, UserRank.DataViewer));
                        }
                        else if (AuthorityCheck == "DataEditor")
                        {
                            return(new DataEditor(Username, UserRank.DataEditor));
                        }
                        else if (AuthorityCheck == "SuperUser")
                        {
                            return(new SuperUser(Username, UserRank.SuperUser));
                        }
                        else if (AuthorityCheck == "SuperAdmin")
                        {
                            return(new SuperAdmin(Username, UserRank.SuperAdmin));
                        }
                    }
                }
            }
            public static void SendMessage(string receiver)
            {
                Console.WriteLine("Type your message, limit 250 characters.");
                string content = Console.ReadLine();
                int    sentid  = Database_Access.MessageSend(Username, receiver, content);

                Console.Clear();
                ViewHistory(receiver);
                Message messagetosend = Database_Access.Sentid(sentid);

                File_Acess.NewMessage(messagetosend);
            }
            public static void ViewHistory(string receiver)
            {
                var history = Database_Access.GetHistory(Username, receiver);



                foreach (var h in history)
                {
                    Console.WriteLine($"MessageID: {h.MessageId}");
                    Console.WriteLine($"From:{h.Sender}");
                    Console.WriteLine($"To:{h.Receiver}, at: {h.Datetime}");
                    Console.WriteLine($"{h.Content}");
                    Console.WriteLine("--------------------------------------");
                }
            }
            public static void ChangePassword()
            {
                string password1;
                string password2;

                do
                {
                    Console.WriteLine("Pick a password");
                    password1 = Console.ReadLine();

                    Console.WriteLine("Enter your password a second time");
                    password2 = Console.ReadLine();

                    if (password1 != password2)
                    {
                        Console.WriteLine("Passwords don't match");
                    }
                } while (password1 != password2);

                Database_Access.PasswordChange(password1, Username);
            }
            public void DeleteMessage(int messageid, string receiver)
            {
                string Sender     = Username;
                string Receiver   = receiver;
                int    idtoselect = messageid;
                bool   check      = Database_Access.SenderCheck(Sender, idtoselect);

                if (check == true)
                {
                    Database_Access.MessageDeletion(Sender, Receiver, idtoselect);
                    Console.Clear();
                    Console.WriteLine("Message deletion complete!");
                    ViewHistory(receiver);
                    Message messagetodelete = Database_Access.IdRetrieve(idtoselect);
                    File_Acess.DeleteMessage(messagetodelete);
                }

                else
                {
                    Console.Clear();
                    Console.WriteLine("You can't delete messages you haven't sent.");
                }
            }
            public void CreateUser()
            {
                bool   NameOriginal = false;
                string Name         = "";

                while (NameOriginal == false)
                {
                    Console.WriteLine("Pick a username:"******"This username is already in use! Please pick another one.");
                    }
                }

                string Pass1 = "0000";

                Database_Access.UserCreation(Name, Pass1);
                Console.Clear();
                ListUsers();
            }
예제 #10
0
        internal void DataEditorMenu(DataEditor User)
        {
            bool InUse = true;

            Console.Clear();
            Console.WriteLine($"Welcome back, {Users.User.Username}");
            while (InUse == true)
            {
                Console.WriteLine("What do you want to do?");
                Console.WriteLine("V - View messages");
                Console.WriteLine("C - Change password");
                Console.WriteLine("L - Logout");
                string Selection = Console.ReadLine();

                switch (Selection.ToLower())
                {
                case "v":
                    Console.Clear();
                    Console.WriteLine("Enter a username or type r to return to the Main Menu:");

                    string User2 = Console.ReadLine();

                    if (User2.ToLower() == "r")
                    {
                        break;
                    }
                    bool UserInSystem = true;

                    while (UserInSystem == true)
                    {
                        UserInSystem = Database_Access.NameCheck(User2);
                        if (UserInSystem == true)
                        {
                            Console.Clear();
                            Console.WriteLine($"The user {User2} cannot be found!");
                            Console.WriteLine("Please enter a valid username:"******"Choose action:");
                    Console.WriteLine("S - Send message");
                    Console.WriteLine("E - Edit message");
                    Console.WriteLine("R - Return to the previous screen");
                    string ActionSelection = Console.ReadLine();

                    switch (ActionSelection.ToLower())
                    {
                    case "r":
                        Console.Clear();
                        break;

                    case "s":
                        DataViewer.SendMessage(User2);
                        break;

                    case "e":
                        Console.WriteLine("Select the message ID you want to edit:");
                        int messageeditid = int.Parse(Console.ReadLine());
                        User.EditMessage(messageeditid, User2);
                        break;

                    default:
                        Console.WriteLine("Please use one of the available actions.");
                        break;
                    }
                    break;

                case "c":
                    Console.Clear();
                    DataViewer.ChangePassword();
                    break;

                case "l":
                    Console.Clear();
                    InUse = false;
                    Console.WriteLine("You were successfully logged out.");
                    break;

                default:
                    Console.WriteLine("Please use one of the available actions.");
                    break;
                }
            }
        }
예제 #11
0
        internal void SuperAdminMenu(SuperAdmin SuperAdmin)
        {
            bool InUse = true;

            Console.Clear();
            Console.WriteLine($"Welcome back, {User.Username}");
            while (InUse == true)
            {
                Console.WriteLine("What do you want to do?");
                Console.WriteLine("V - View messages");
                Console.WriteLine("A - Admininstratrion menu");
                Console.WriteLine("C - Change password");
                Console.WriteLine("L - Logout");
                string Selection = Console.ReadLine();

                switch (Selection.ToLower())
                {
                case "v":
                    Console.Clear();
                    Console.WriteLine("Enter a username or type r to go back to the Main Menu:");


                    string User2 = Console.ReadLine();

                    if (User2.ToLower() == "r")
                    {
                        break;
                    }
                    bool UserOtherInSystem = true;

                    while (UserOtherInSystem == true)
                    {
                        UserOtherInSystem = Database_Access.NameCheck(User2);
                        if (UserOtherInSystem == true)
                        {
                            Console.Clear();
                            Console.WriteLine($"The user {User2} cannot be found!");
                            Console.WriteLine("Please enter a valid username:"******"Choose action:");
                    Console.WriteLine("S - Send message");
                    Console.WriteLine("E - Edit message");
                    Console.WriteLine("D - Delete message");
                    Console.WriteLine("R - Return to the previous screen");
                    string ActionSelection = Console.ReadLine();

                    switch (ActionSelection.ToLower())
                    {
                    case "r":
                        Console.Clear();
                        break;

                    case "s":
                        DataViewer.SendMessage(User2);
                        break;

                    case "e":
                        Console.WriteLine("Select the message ID you want to edit:");
                        int messageeditid = int.Parse(Console.ReadLine());
                        SuperAdmin.EditMessage(messageeditid, User2);
                        break;

                    case "d":
                        Console.WriteLine("Copy and Paste the message ID of the message you want to delete:");
                        int messagedeleteid = int.Parse(Console.ReadLine());
                        SuperAdmin.DeleteMessage(messagedeleteid, User2);
                        break;

                    default:
                        Console.WriteLine("Please use one of the available actions.");
                        break;
                    }
                    break;

                case "a":
                    Console.Clear();
                    Console.WriteLine("L - List of registered users");
                    Console.WriteLine("R - Return to the Main Menu");
                    string AdminSelection = Console.ReadLine();

                    switch (AdminSelection.ToLower())
                    {
                    case "r":
                        break;

                    case "l":
                        Console.Clear();
                        SuperAdmin.ListUsers();
                        Console.WriteLine("Choose action:");
                        Console.WriteLine("C - Create a new user");
                        Console.WriteLine("P - Promote an existing user");
                        Console.WriteLine("D - Demote an existing user");
                        Console.WriteLine("E - Erase an existing user's account");
                        Console.WriteLine("R - Return to Previous Screen");
                        string SuperUserSelection = Console.ReadLine();
                        string UserOther          = "";
                        bool   UserInList         = true;
                        switch (SuperUserSelection.ToLower())
                        {
                        case "r":
                            Console.Clear();
                            break;

                        case "c":
                            SuperAdmin.CreateUser();
                            break;

                        case "p":
                            Console.WriteLine("Please pick a user from the list:");
                            UserOther = Console.ReadLine();
                            while (UserInList == true)
                            {
                                UserInList = Database_Access.NameCheck(UserOther);
                                if (UserInList == true)
                                {
                                    Console.Clear();
                                    Console.WriteLine($"The username {UserOther} cannot be found!");
                                    Console.WriteLine("Please enter a valid username:"******"d":
                            Console.WriteLine("Please pick a user from the list:");
                            UserOther = Console.ReadLine();
                            while (UserInList == true)
                            {
                                UserInList = Database_Access.NameCheck(UserOther);
                                if (UserInList == true)
                                {
                                    Console.Clear();
                                    Console.WriteLine($"The username {UserOther} cannot be found!");
                                    Console.WriteLine("Please enter a valid username:"******"e":
                            Console.WriteLine("Please pick a user from the list:");
                            UserOther = Console.ReadLine();
                            while (UserInList == true)
                            {
                                UserInList = Database_Access.NameCheck(UserOther);
                                if (UserInList == true)
                                {
                                    Console.Clear();
                                    Console.WriteLine($"The username {UserOther} cannot be found!");
                                    Console.WriteLine("Please enter a valid username:"******"";
                            while (SecurityCheck.ToLower() != "y" && SecurityCheck.ToLower() != "n")
                            {
                                Console.WriteLine($"The user {UserOther} will be PERMANENTLY DELETED");
                                Console.WriteLine("as will all the messages they have sent or received!");
                                Console.WriteLine("ARE YOU SURE?");
                                Console.WriteLine("[ Y / N]");
                                SecurityCheck = Console.ReadLine();
                            }
                            if (SecurityCheck.ToLower() != "y")
                            {
                                SuperAdmin.DeleteUser(UserOther);
                            }
                            else
                            {
                                break;
                            }
                            break;

                        default:
                            Console.WriteLine("Please use one of the available actions.");
                            break;
                        }
                        break;

                    default:
                        Console.WriteLine("Please use one of the available actions.");
                        break;
                    }
                    break;

                case "c":
                    Console.Clear();
                    DataViewer.ChangePassword();
                    break;

                case "l":
                    Console.Clear();
                    InUse = false;
                    Console.WriteLine("You have been successfully logged out.");
                    break;

                default:
                    Console.WriteLine("Please use one of the available actions.");
                    break;
                }
            }
        }
 public void DeleteUser(string user)
 {
     Database_Access.UserDeletion(user);
     Console.WriteLine($"{user} has been deleted!");
     ListUsers();
 }