Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using System.IO;
- using System.Runtime.Serialization.Formatters.Binary;
- using System.Runtime.Serialization;
- namespace quiz_forms
- {
- public partial class Admin : Form
- {
- //Delcaring some random Variables
- int numques;
- public List<Question> questions = new List<Question>();
- Question ques;
- User user;
- List<User> players;
- bool edit = false;
- bool passchange = false;
- bool usernamechange = false;
- bool avatarchange = false;
- bool ranchange = false;
- string currentusername;
- int editrank;
- public Admin(User _user, List<User> users, Question questi)
- {
- ques = questi;
- user = _user;
- players = users;
- InitializeComponent();
- //FileStream fileStream = File.OpenRead("../../TextFiles/Questions.bin");
- //BinaryReader bq = new BinaryReader(fileStream);
- //while (bq.PeekChar() != -1)
- //{
- // string question = bq.ReadString();
- // string answer = bq.ReadString();
- // if (question == Question)
- // {
- // lbQuestions.Items.Add(question);
- // }
- // else if (newload != true)
- // {
- // lbQuestions.Items.Add(question);
- // }
- //}
- //bq.Close();
- //fileStream.Close();
- }
- //Declaring the file stream for the user file
- string Question;
- bool newload = false;
- private void Admin_Load(object sender, EventArgs e)
- {
- numques = Convert.ToInt16(lbQuestions.Items.Count.ToString());
- readques();
- readuser();
- }
- public int getNumQues
- {
- get { return numques; }
- }
- private void button1_Click(object sender, EventArgs e)
- {
- }
- private void returnuser(string username)
- {
- Stream fs;
- BinaryFormatter bf = new BinaryFormatter();
- try
- {
- fs = File.OpenRead("Users.bin");
- players = (List<User>)bf.Deserialize(fs);
- fs.Close();
- foreach (User player in players)
- {
- try
- {
- if (username == player.getUser)
- {
- user.getUser = player.getUser;
- user.getrank = player.getrank;
- user.getAvatar = player.getAvatar;
- user.getScore = player.getScore;
- user.highScore = player.highScore;
- }
- }
- catch
- {
- MessageBox.Show("Could change back to og user");
- }
- }
- }
- catch
- {
- MessageBox.Show("Couldnt do try");
- }
- }
- private void giveadmin(string username, int currentrank)
- {
- Stream fs;
- Stream fr;
- BinaryFormatter formatter = new BinaryFormatter();
- try
- {
- fs = File.OpenRead("Users.bin");
- players = (List<User>)formatter.Deserialize(fs);
- int userlength = players.Count;
- fs.Close();
- foreach (User player in players)
- {
- for (int i = 1; i < userlength; i++)
- {
- if (username == player.getUser)
- {
- MessageBox.Show(player.getrank.ToString());
- MessageBox.Show(currentrank.ToString());
- if (currentrank > player.getrank)
- {
- fr = File.OpenWrite("Users.bin");
- user.getUser = player.getUser;
- user.getPassword = player.getPassword;
- user.getrank = 2;
- user.getAvatar = player.getAvatar;
- user.getScore = player.getScore;
- user.highScore = player.highScore;
- players.RemoveAt(i);
- players.Add(user);
- formatter.Serialize(fr, players);
- fr.Close();
- MessageBox.Show("User given admin");
- return;
- }
- else
- {
- MessageBox.Show("User is already admin");
- return;
- }
- }
- }
- }
- }
- catch
- {
- MessageBox.Show("Cant change password");
- }
- }
- private void deleteuser(string username)
- {
- Stream fs;
- BinaryFormatter bf = new BinaryFormatter();
- try
- {
- fs = File.OpenRead("Users.bin");
- players = (List<User>)bf.Deserialize(fs);
- fs.Close();
- int userlenght = players.Count();
- foreach (User player in players)
- {
- for (int i = 1; i <= userlenght; i++)
- {
- if (username == player.getUser)
- {
- if(player.getrank != 1)
- {
- FileStream fr = new FileStream("Users.bin", FileMode.Create);
- players.RemoveAt(i);
- bf.Serialize(fr, players);
- MessageBox.Show("user deleted");
- fr.Close();
- return;
- }
- else
- {
- MessageBox.Show("Cant delete superadmin");
- }
- }
- }
- }
- }
- catch
- {
- MessageBox.Show("Failed to delete user");
- }
- }
- private void button3_Click(object sender, EventArgs e)
- {
- }
- private void tabPage1_Click(object sender, EventArgs e)
- {
- }
- private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
- {
- }
- private void button4_Click(object sender, EventArgs e)
- {
- }
- private void readques()
- {
- //FileStream fs = new FileStream("Questions.bin", FileMode.Open);
- Stream fs;
- BinaryFormatter formatter = new BinaryFormatter();
- try
- {
- fs = File.OpenRead("Questions.bin");
- questions = (List<Question>)formatter.Deserialize(fs);
- fs.Close();
- int questionlength = questions.Count;
- foreach (Question question in questions)
- {
- for (int i = 0; i < questionlength; i++)
- {
- if (lbQuestions.Items.Contains(question.theQuestion))
- {
- //Do nothing
- }
- else
- {
- lbQuestions.Items.Add(question.theQuestion);
- }
- }
- }
- }
- catch
- {
- MessageBox.Show("cant read Questions", "Error Reading");
- }
- }
- private void readuser()
- {
- Stream fs;
- BinaryFormatter formatter = new BinaryFormatter();
- try
- {
- fs = File.OpenRead("Users.bin");
- players = (List<User>)formatter.Deserialize(fs);
- fs.Close();
- int userlenght = players.Count();
- foreach (User player in players)
- {
- for (int i = 0; i < userlenght; i++)
- {
- if (lbUser.Items.Contains(player.getUser))
- {
- //Do nothing
- }
- else
- {
- lbUser.Items.Add(player.getUser);
- }
- }
- }
- }
- catch
- {
- MessageBox.Show("Cant read Users", "Error Reading");
- }
- }
- private void button2_Click(object sender, EventArgs e)
- {
- txtPassword.Visible = true;
- }
- private void deletequestion(string thequestion)
- {
- Stream fs;
- BinaryFormatter bf = new BinaryFormatter();
- try
- {
- fs = File.OpenRead("Questions.bin");
- questions = (List<Question>)bf.Deserialize(fs);
- fs.Close();
- int questlenght = questions.Count();
- MessageBox.Show(questlenght.ToString());
- foreach (Question quest in questions)
- {
- for (int i = 1; i <= questlenght; i++)
- {
- if (thequestion == quest.theQuestion)
- {
- FileStream fr = new FileStream("Questions.bin", FileMode.Create);
- questions.RemoveAt(i);
- int questlenght2 = questions.Count();
- MessageBox.Show(questlenght2.ToString());
- bf.Serialize(fr, questions);
- MessageBox.Show("question deleted");
- fr.Close();
- return;
- }
- }
- }
- }
- catch
- {
- MessageBox.Show("Failed to delete question");
- }
- }
- private void readques2(string thequestion, string newans, string operation)
- {
- Stream fs;
- Stream fr;
- BinaryFormatter bf = new BinaryFormatter();
- if (operation == "getquestion")
- {
- try
- {
- fs = File.OpenRead("Questions.bin");
- questions = (List<Question>)bf.Deserialize(fs);
- int questlength = questions.Count();
- fs.Close();
- foreach (Question quest in questions)
- {
- if (quest.theQuestion == thequestion)
- {
- textBox2.Text = quest.correct;
- return;
- }
- }
- }
- catch
- {
- MessageBox.Show("Could read questions - editing");
- }
- }
- else if (operation == "edit")
- {
- try
- {
- fs = File.OpenRead("Questions.bin");
- questions = (List<Question>)bf.Deserialize(fs);
- int questlength = questions.Count();
- MessageBox.Show(questlength.ToString());
- fs.Close();
- foreach (Question quest in questions)
- {
- for (int i = 0; i < questlength; i++)
- {
- if (thequestion == quest.theQuestion)
- {
- fr = File.OpenWrite("Questions.bin");
- ques.theQuestion = quest.theQuestion;
- ques.correct = newans;
- questions.RemoveAt(i);
- questions.Add(ques);
- bf.Serialize(fr, questions);
- fr.Close();
- MessageBox.Show("Question changed");
- return;
- }
- }
- }
- }
- catch
- {
- MessageBox.Show("cant change question");
- }
- }
- else if (operation == "")
- {
- MessageBox.Show("Error in code - no operation set");
- }
- }
- private void txtconPass_TextChanged(object sender, EventArgs e)
- {
- }
- private void tpQues_Click(object sender, EventArgs e)
- {
- }
- private void button5_Click(object sender, EventArgs e)
- {
- //textBox2.Text = theans;
- //edit = true;
- //MessageBox.Show(edit.ToString());
- //button4.Text = "edit";
- }
- private void button6_Click(object sender, EventArgs e)
- {
- }
- private void button7_Click(object sender, EventArgs e)
- {
- }
- private void removeadmin(string username, int rank)
- {
- Stream fs;
- Stream fr;
- BinaryFormatter formatter = new BinaryFormatter();
- try
- {
- fs = File.OpenRead("Users.bin");
- players = (List<User>)formatter.Deserialize(fs);
- int userlength = players.Count;
- fs.Close();
- foreach (User player in players)
- {
- for (int i = 1; i < userlength; i++)
- {
- if (username == player.getUser)
- {
- MessageBox.Show(player.getrank.ToString());
- if (player.getrank == 1)
- {
- MessageBox.Show("You cant remove admin from superadmin");
- return;
- }
- else if (player.getrank == 0)
- {
- MessageBox.Show("This user doesnt have admin");
- return;
- }
- else
- {
- fr = File.OpenWrite("Users.bin");
- user.getUser = player.getUser;
- user.getPassword = player.getPassword;
- user.getrank = 0;
- user.getAvatar = player.getAvatar;
- user.getScore = player.getScore;
- user.highScore = player.highScore;
- players.RemoveAt(i);
- players.Add(user);
- formatter.Serialize(fr, players);
- fr.Close();
- MessageBox.Show("Admin removed");
- return;
- }
- }
- }
- }
- }
- catch
- {
- MessageBox.Show("Cant change password");
- }
- }
- private void button8_Click(object sender, EventArgs e)
- {
- }
- private void button9_Click(object sender, EventArgs e)
- {
- }
- private void metroTile1_Click(object sender, EventArgs e)
- {
- Welcome Wel = new Welcome(user, players);
- this.Visible = false;
- Wel.ShowDialog();
- this.Close();
- }
- private void metroTile4_Click(object sender, EventArgs e)
- {
- string username = lbUser.SelectedItem.ToString();
- deleteuser(username);
- }
- private void metroTile3_Click(object sender, EventArgs e)
- {
- txtPassword.Visible = true;
- }
- private void metroTile2_Click(object sender, EventArgs e)
- {
- string username = lbUser.SelectedItem.ToString();
- string currentuser = user.getUser;
- int currentrank = user.getrank;
- removeadmin(username, currentrank);
- returnuser(currentuser);
- }
- private void metroTile5_Click(object sender, EventArgs e)
- {
- string username = lbUser.SelectedItem.ToString();
- string currentuser = user.getUser;
- int currentrank = user.getrank;
- MessageBox.Show(currentrank.ToString());
- giveadmin(username, currentrank);
- returnuser(currentuser);
- }
- private void metroTile6_Click(object sender, EventArgs e)
- {
- }
- private void metroTile9_Click(object sender, EventArgs e)
- {
- if (metroTile9.Text == "Edit")
- {
- string anotherans = textBox2.Text;
- string thequestion = textBox1.Text;
- string operation;
- operation = "edit";
- readques2(thequestion, anotherans, operation);
- }
- else
- {
- Stream fs;
- BinaryFormatter bf = new BinaryFormatter();
- try
- {
- fs = File.OpenRead("Questions.bin");
- questions = (List<Question>)bf.Deserialize(fs);
- fs.Close();
- }
- catch
- {
- MessageBox.Show("Couldnt read bin file");
- }
- try
- {
- fs = File.OpenWrite("Questions.bin");
- ques.theQuestion = textBox1.Text;
- ques.correct = textBox2.Text;
- ques.getuse = false;
- questions.Add(ques);
- bf.Serialize(fs, questions);
- System.IO.File.Copy("Questions.bin", "../Release/");
- fs.Close();
- readques();
- MessageBox.Show("Question added");
- return;
- }
- catch
- {
- MessageBox.Show("Couldnt add Question");
- }
- }
- }
- private void metroTile7_Click(object sender, EventArgs e)
- {
- textBox1.Text = lbQuestions.SelectedItem.ToString();
- string thequestion = textBox1.Text;
- string anotherans = textBox2.Text;
- metroTile10.Text = "Edit";
- string operation;
- operation = "getquestion";
- readques2(thequestion, anotherans, operation);
- }
- private void metroTile8_Click(object sender, EventArgs e)
- {
- string thequestion =
- lbQuestions.SelectedItem.ToString();
- if (MessageBox.Show("Are you want to delete " + thequestion, "Are you sure", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
- {
- deletequestion(thequestion);
- }
- }
- private void metroTile10_Click(object sender, EventArgs e)
- {
- Welcome Wel = new Welcome(user, players);
- Wel.Show();
- this.Close();
- }
- private void metroTile13_Click(object sender, EventArgs e)
- {
- string thequestion = lbQuestions.SelectedItem.ToString();
- if (MessageBox.Show("Are you want to delete " + thequestion, "Are you sure", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
- {
- deletequestion(thequestion);
- }
- }
- private void metroTile14_Click(object sender, EventArgs e)
- {
- if (metroTile9.Text == "Edit")
- {
- string anotherans = textBox2.Text;
- string thequestion = textBox1.Text;
- string operation;
- operation = "edit";
- readques2(thequestion, anotherans, operation);
- }
- else
- {
- Stream fs;
- BinaryFormatter bf = new BinaryFormatter();
- try
- {
- fs = File.OpenRead("Questions.bin");
- questions = (List<Question>)bf.Deserialize(fs);
- fs.Close();
- }
- catch
- {
- MessageBox.Show("Couldnt read bin file");
- }
- try
- {
- fs = File.OpenWrite("Questions.bin");
- ques.theQuestion = textBox1.Text;
- ques.correct = textBox2.Text;
- ques.getuse = false;
- questions.Add(ques);
- bf.Serialize(fs, questions);
- System.IO.File.Copy("Questions.bin", "../Release/");
- fs.Close();
- MessageBox.Show("Question added");
- lbQuestions.Items.Clear();
- readques();
- return;
- }
- catch
- {
- MessageBox.Show("Couldnt add Question");
- }
- }
- }
- private void metroTile10_Click_1(object sender, EventArgs e)
- {
- string op = "edit";
- string newas = "";
- string theques = lbQuestions.SelectedItem.ToString();
- if(textBox1.Text.Count() <= 0)
- {
- op = "edit";
- readques2(theques, newas, op);
- }
- }
- private void metroTile7_Click_1(object sender, EventArgs e)
- {
- string username = lbUser.SelectedItem.ToString();
- groupBox2.Visible = true;
- getuserdet(username);
- }
- private void getuserdet(string username)
- {
- Stream fs;
- BinaryFormatter bf = new BinaryFormatter();
- try
- {
- fs = File.OpenRead("Users.bin");
- players = (List<User>)bf.Deserialize(fs);
- foreach(User player in players)
- {
- if(username == player.getUser)
- {
- txtUsername.Text = player.getUser;
- currentusername = username;
- pictureBox1.Image = player.getAvatar;
- if(player.getrank == 0)
- {
- cbRank.Enabled = true;
- editrank = 0;
- cbRank.SelectedItem = "User";
- }
- else if(player.getrank == 1)
- {
- cbRank.SelectedIndex = -1;
- cbRank.SelectedText = "Superadmin";
- cbRank.Enabled = false;
- }
- else if(player.getrank == 2)
- {
- cbRank.Enabled = true;
- editrank = 2;
- cbRank.SelectedItem = "Admin";
- }
- }
- }
- }
- catch
- {
- MessageBox.Show("Couldnt get users details");
- return;
- }
- }
- private void edituser()
- {
- ExtraFunctions extra = new ExtraFunctions();
- if (usernamechange == true)
- {
- try
- {
- if (extra.changeusername(currentusername, txtUsername.Text, txtUsername.Text, players, user) == "done")
- {
- throw new mycustomex("Username changed");
- }
- else if (extra.changeusername(currentusername, txtUsername.Text, txtUsername.Text, players, user) == "alreadyuser")
- {
- throw new mycustomex("already user with that username");
- }
- else if (extra.changeusername(currentusername, txtUsername.Text, txtUsername.Text, players, user) == "cant change user")
- {
- throw new mycustomex("wasnt able to change the username");
- }
- else if (extra.changeusername(currentusername, txtUsername.Text, txtUsername.Text, players, user) == "usernames doesnt match")
- {
- throw new mycustomex("usernames dont match");
- }
- else if (extra.changeusername(currentusername, txtUsername.Text, txtUsername.Text, players, user) == "username is empty")
- {
- throw new mycustomex("username is empty");
- }
- }
- catch(mycustomex ex)
- {
- MessageBox.Show(ex.message);
- }
- }
- if(passchange == true)
- {
- try
- {
- if (extra.changepassword(txtPassword.Text, txtPassword.Text, txtUsername.Text, players, user) == "passchanged")
- {
- throw new mycustomex("Password changed");
- }
- else if (extra.changepassword(txtPassword.Text, txtPassword.Text, txtUsername.Text, players, user) == "cantchangepass")
- {
- throw new mycustomex("cant change password");
- }
- else if (extra.changepassword(txtPassword.Text, txtPassword.Text, txtUsername.Text, players, user) == "passwordsdontmatch")
- {
- throw new mycustomex("passwords dont match");
- }
- else if (extra.changepassword(txtPassword.Text, txtPassword.Text, txtUsername.Text, players, user) == "passwordsareempty")
- {
- throw new mycustomex("passwords are empty");
- }
- }
- catch (mycustomex ex)
- {
- MessageBox.Show(ex.message, ex.message);
- }
- }
- if(ranchange == true)
- {
- try
- {
- int rank;
- if(cbRank.SelectedItem.ToString() == "Admin")
- {
- rank = 2;
- }
- else
- {
- rank = 0;
- }
- if(extra.changerank(rank,txtUsername.Text,user,players) == "rankchanged")
- {
- MessageBox.Show("Rank changed");
- }
- else if (extra.changerank(rank, txtUsername.Text, user, players) == "cantchangerank")
- {
- throw new mycustomex("cant change rank");
- }
- else if (extra.changerank(rank, txtUsername.Text, user, players) == "trycatchdidntrun")
- {
- throw new mycustomex("try catch didnt run");
- }
- else if(extra.changerank(rank,txtUsername.Text,user,players) == "useralreadyrank")
- {
- throw new mycustomex("user already " + cbRank.SelectedItem.ToString());
- }
- }
- catch(mycustomex ex)
- {
- MessageBox.Show(ex.message);
- }
- }
- }
- private void txtPassword_TextChanged(object sender, EventArgs e)
- {
- if(txtPassword.Text != "")
- {
- passchange = true;
- }
- }
- private void txtUsername_TextChanged(object sender, EventArgs e)
- {
- if (txtUsername.Text == currentusername)
- {
- usernamechange = false;
- }
- else
- {
- usernamechange = true;
- }
- }
- private void cbRank_SelectedIndexChanged(object sender, EventArgs e)
- {
- ranchange = true;
- }
- private void metroTile6_Click_1(object sender, EventArgs e)
- {
- edituser();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement