public static User SelectUser(UserManager activeUserManager)
        {
            List <string> selectUserItems = new List <string>();

            using (var database = new DatabaseStuff())
            {
                List <User> availableUsers = database.Users.ToList();

                try
                {
                    foreach (User user in availableUsers)
                    {
                        if (user.UserName != activeUserManager.UserName)
                        {
                            selectUserItems.Add(user.UserName);
                        }
                    }
                }
                catch (Exception e) { Console.WriteLine(e); }
                if (selectUserItems.Count == 0)
                {
                    Console.WriteLine("\n\n\tNo users in database!");
                    Console.ReadKey();
                    return(null);
                }
                selectUserItems.Add("Back");
                string selectedUserName = Menus.VerticalMenu(StringsFormatted.SelectUser, selectUserItems);
                if (selectedUserName.Contains("Back"))
                {
                    return(null);
                }
                Console.Clear();
                return(database.Users.Single(i => i.UserName == selectedUserName));
            }
        }
Exemple #2
0
        public static void ManageUsers(UserManager activeUserManager)
        {
            List <string> ChangeUserMenuItems = new List <string> {
                "Permissions", "Delete User", "Create a NEW User", "Back"
            };
            string manageUsersChoice = Menus.VerticalMenu(StringsFormatted.ManageUsers, ChangeUserMenuItems);

            if (manageUsersChoice.Contains("Create"))
            {
                ManageUserFunctions.CreateNewUser();
                return;
            }
            else if (manageUsersChoice.Contains("Back"))
            {
                return;
            }
            User receiver = ManageUserFunctions.SelectUser(activeUserManager);

            if (receiver is null)
            {
                return;
            }
            if (manageUsersChoice == "Delete User")
            {
                ManageUserFunctions.DeleteUser(receiver);
            }
            else if (manageUsersChoice == "Permissions")
            {
                ManageUserFunctions.ChangeUserPermissions(receiver);
            }
        }
Exemple #3
0
        public static void MainMenu(UserManager activeUserManager)
        {
            while (true)
            {
                using (var database = new DatabaseStuff())
                {
                    // Probe the database for the nuber of unread messages in chat and unread mail
                    int unreadChatMessages = database.Users.Include("UnreadChatMessages").Single(c => c.UserName == activeUserManager.UserName).UnreadChatMessages.Count;

                    // Create the Menu items common to all users
                    List <string> mainMenuItems = new List <string> {
                        $"Chat ({unreadChatMessages})", "Personal Messages", "Log Out", "Exit"
                    };

                    // Add more options for User and Administrator access.
                    if (activeUserManager.UserAccess == Accessibility.administrator)
                    {
                        mainMenuItems.Insert(2, "Manage Users");
                        mainMenuItems.Insert(3, "Messages History");
                    }
                    else if (activeUserManager.UserAccess == Accessibility.user)
                    {
                        mainMenuItems.Insert(2, "Messages History");
                    }

                    // Acquire the choice of function from the user using a vertical menu
                    string userChoice = Menus.VerticalMenu(StringsFormatted.MainMenu, mainMenuItems);

                    // Check what the user chose and act accordingly
                    if (userChoice.Contains("Chat"))
                    {
                        MenuFunctions.ShowChat(activeUserManager);
                    }
                    else if (userChoice.Contains("Personal Messages"))
                    {
                        MenuFunctions.PersonalMessages(activeUserManager);
                    }
                    else if (userChoice.Contains("Messages History"))
                    {
                        MenuFunctions.CommunicationHistory(activeUserManager);
                    }
                    else if (userChoice.Contains("Manage Users"))
                    {
                        MenuFunctions.ManageUsers(activeUserManager);
                    }
                    else if (userChoice.Contains("Log Out"))
                    {
                        return;
                    }
                    else if (userChoice.Contains("Exit"))
                    {
                        Environment.Exit(0);
                    }
                }
            }
        }
        public static void ChangeUserPermissions(User changingUser)
        {
            List <string> manageUserItems;

            if (changingUser.UserAccess == Accessibility.administrator)
            {
                manageUserItems = new List <string>()
                {
                    "downgrade to USER", "downgrade to GUEST", "Back"
                };
            }
            else if (changingUser.UserAccess == Accessibility.user)
            {
                manageUserItems = new List <string>()
                {
                    "upgrade to ADMINISTRATOR", "downgrade to GUEST", "Back"
                };
            }
            else
            {
                manageUserItems = new List <string>()
                {
                    "upgrade to ADMINISTRATOR", "upgrade to USER", "Back"
                };
            }
            string changeOfAccess = Menus.VerticalMenu($"\n\n\t{changingUser.UserName} is {changingUser.UserAccess}, how do you want to change his permissions?", manageUserItems);

            using (var database = new DatabaseStuff())
            {
                User changedUser = database.Users.Single(i => i.UserName == changingUser.UserName);
                if (changeOfAccess.Contains("ADMINISTRATOR"))
                {
                    changedUser.UserAccess = Accessibility.administrator;
                }
                else if (changeOfAccess.Contains("USER"))
                {
                    changedUser.UserAccess = Accessibility.user;
                }
                else if (changeOfAccess.Contains("GUEST"))
                {
                    changedUser.UserAccess = Accessibility.guest;
                }
                else
                {
                    return;
                }
                database.SaveChanges();
            }
            Console.Write($"\n\n\tYou did {changeOfAccess}, the user: {changingUser.UserName}\n\n\tOK");
            Console.ReadKey();
        }
Exemple #5
0
        public static int SelectChatMessage()
        {
            Console.Clear();
            string        chat         = StringsFormatted.Chat + "\n\n";
            List <string> chatMessages = new List <string>();

            using (var database = new DatabaseStuff())
            {
                List <ChatMessage> DBChatMessages = database.Chat.Include("Sender").ToList();
                foreach (ChatMessage chatMessage in DBChatMessages)
                {
                    chatMessages.Add($"{chatMessage.Id}. {chatMessage.TimeSent.ToString("dd/MM HH:mm")}   {chatMessage.Sender.UserName}: {chatMessage.Text}");
                }
            }
            return(int.Parse(Menus.VerticalMenu(chat, chatMessages).Split('.').First()));
        }
Exemple #6
0
        public static void PersonalMessages(UserManager activeUserManager)
        {
            while (true)
            {
                using (var database = new DatabaseStuff())
                {
                    // Probe the database for the sent and received personal messages
                    List <Message> receivedMessages = database.Messages.Include("Sender").Where(message => message.Receiver.Id == activeUserManager.TheUser.Id).ToList();
                    List <Message> sentMessages     = database.Messages.Include("Receiver").Where(message => message.Sender.Id == activeUserManager.TheUser.Id).ToList();

                    int countReceivedMessages       = receivedMessages.Count;
                    int countUnreadReceivedMessages = receivedMessages.Count(message => message.IsRead == false);
                    int countSentMessages           = sentMessages.Count;
                    int countUnreadSentMessages     = sentMessages.Count(message => message.IsRead == false);

                    string inbox = $"Inbox ({countUnreadReceivedMessages}/{countReceivedMessages})";
                    string sent  = $"Sent  ({countUnreadSentMessages}/{countSentMessages})";


                    // Create the Message Menu items common to all users
                    List <string> messageMenuItems = new List <string> {
                        $"Create NEW", $"{inbox}", $"{sent}", "Back"
                    };

                    // Acquire the choice of function from the user using a vertical menu
                    string userChoice = Menus.VerticalMenu(StringsFormatted.PersonalMessages, messageMenuItems);

                    if (userChoice.Contains("Create"))
                    {
                        PersonalMessageFunctions.SendEmail(activeUserManager);
                    }
                    else if (userChoice.Contains("Inbox"))
                    {
                        PersonalMessageFunctions.PresentAndManipulateMessage(activeUserManager, receivedMessages);
                    }
                    else if (userChoice.Contains("Sent"))
                    {
                        PersonalMessageFunctions.PresentAndManipulateMessage(activeUserManager, sentMessages, Received: false);
                    }
                    else
                    {
                        return;
                    }
                }
            }
        }
Exemple #7
0
        public static void EditChatMessages()
        {
            int           chosenMessageID = SelectChatMessage();
            List <string> editOptions     = new List <string>()
            {
                "Update", "Delete", "Back"
            };
            string editChoice = Menus.VerticalMenu(StringsFormatted.Options, editOptions);

            if (editChoice.Contains("Update"))
            {
                UpdateChatMessage(chosenMessageID);
            }
            else if (editChoice.Contains("Delete"))
            {
                DeleteChatMessage(chosenMessageID);
            }
        }
Exemple #8
0
        public static Message SelectMessage(UserManager activeUserManager, List <Message> Messages, bool Received)
        {
            List <string> selectMessageItems = new List <string>();
            string        receiverName;

            using (var database = new DatabaseStuff())
            {
                int UserId = database.Users.Single(i => i.UserName == activeUserManager.UserName).Id;

                foreach (Message message in Messages)
                {
                    if (Received)
                    {
                        receiverName = message.Sender.UserName;
                    }
                    else
                    {
                        receiverName = message.Receiver.UserName;
                    }

                    selectMessageItems.Add(CustomizeAppearanceOfMessage(message, receiverName, Received));
                }

                selectMessageItems.Add("Back");
                string oMessage = Menus.VerticalMenu(StringsFormatted.OpenMessage, selectMessageItems);

                if (oMessage.Contains("Back"))
                {
                    return(null);
                }

                int messageID = int.Parse(oMessage.Split('|')[1]);

                Console.Clear();
                return(database.Messages.Single(i => i.Id == messageID));
            }
        }