public async Task <User> Login()
        {
            string userName = TypedUserName;
            string password = TypedPassword;

            if (UserCatalogInstance.UserDictionary.Count == 0)
            {
                await UserCatalogInstance.LoadUsersToCatalogAsync();
            }
            Dictionary <string, User> users = UserCatalogInstance.UserDictionary;

            if (users.ContainsKey(userName))
            {
                if (users[userName].Password == password)
                {
                    LoginUser = users[userName];
                    return(users[userName]);
                }
                MessageDialogHelper.Show("Password is case sensitive, please type the correct Password", "Incorrect Password");
            }
            else
            {
                MessageDialogHelper.Show("Could not find User. Remember your username is case sensitive", "User not found");
            }

            return(null);
        }
        public async Task <bool> SignUp()
        {
            string userName     = TypedUserName;
            string password     = TypedPassword;
            string samePassword = SamePassword;

            if (userName == "" || password == "")
            {
                MessageDialogHelper.Show("Please type a valid Username and/or Password. An empty space is not valid", "Invalid Format");
                return(false);
            }
            if (UserCatalogInstance.UserDictionary.Count == 0)
            {
                await UserCatalogInstance.LoadUsersToCatalogAsync();
            }

            Dictionary <string, User> users = UserCatalogInstance.UserDictionary;

            if (!users.ContainsKey(userName))
            {
                if (password == samePassword)
                {
                    users.Add(userName, new User(userName, password));
                    await PersistencyFacade.SaveCollectionWithPolymorphism(users, ProgramSaveFiles.Users);

                    LoginUser = users[userName];
                    MessageDialogHelper.Show("You are now signed up as: " + TypedUserName, "Thanks for signing up!");
                    return(true);
                }
                else
                {
                    MessageDialogHelper.Show("Your passwords do not match, please make sure both passwords are equal.", "Password mismatch");
                }
            }
            else
            {
                MessageDialogHelper.Show("Sorry, but this username is already taken :(", "Username already taken");
            }

            return(false);
        }