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.Windows.Forms;
- namespace SaturnOrderSystem
- {
- public partial class AdminForm : Form
- {
- public AdminForm()
- {
- InitializeComponent();
- }
- int TempUserID; // Bruges til at gemme UserID.
- int TempGroupID; // Bruges til at gemme GroupID.
- int TempDepID; // Bruges til at gemme DepID.
- int ReqPass; // Bruges til at gemme Require Password værdien.
- int AllowLogin; // Bruges til at gemme AllowLogin værdien.
- bool ExistingUserFlag = false; // Bliver sat til true, hvis en bruger oprettes med et username der allerede eksistere.
- ToolTip tooltip = new ToolTip(); // Bruges til at lave Hjælpe tekst.
- /// <summary>
- /// Metoden ClearAdminForm, bruges når tekstfelter osv skal nulstilles.
- /// Sletter indholdet i alle objekter på formen, og fylder Comboboxene op.
- /// </summary>
- public void ClearAdminForm()
- {
- UserNameTextBox.Clear(); // Slette indhold i UserNameTextBox.
- FirstNameTextBox.Clear(); // Slette indhold i FirstNameTextBox.
- LastNameTextBox.Clear(); // Slette indhold i LastNameTextBox.
- PasswordTextBox.Clear(); // Slette indhold i PasswordTextBox.
- RepeatPasswordTextBox.Clear(); // Slette indhold i RepeatPasswordTextBox.
- ReqPassChaCheckBox.Checked = false; // Fjerne v i checkboksen ReqPassChaCheckBox.
- EmailTextBox.Clear(); // Slette indhold i EmailTextBox.
- PhoneTextBox.Clear(); // Slette indhold i PhoneTextBox.
- AllowLoginCheckBox.Checked = false; // Fjerne v i checkboksen AllowLoginCheckBox.
- GroupComboBox.SelectedIndex = -1; // Vælger det tomme felt i GroupComboBox.
- GroupComboBox.Items.Clear(); // Slette indhold i GroupComboBox.
- DepartmentComboBox.SelectedIndex = -1; // Vælger det tomme felt i DepartmentComboBox.
- DepartmentComboBox.Items.Clear(); // Slette indhold i DepartmentComboBox.
- UserListView.Items.Clear(); // Slette indhold i UserListView.
- // Opretter en Sql forspørgsel som henter SupplierName fra tabellen Suppliers.
- SqlClass.sqlQuery("SELECT GroupName FROM Groups", true);
- // Så længe der bliver læst data fra tabellen.
- while (SqlClass.data.Read())
- {
- // henter GroupName fra Groups tabellen til GroupComboBox.
- GroupComboBox.Items.Add(SqlClass.data["GroupName"].ToString());
- }
- // Lukker database forbindelsen.
- SqlClass.SqlConnect.Close();
- // Opretter en Sql forspørgsel som henter SupplierName fra tabellen Suppliers.
- SqlClass.sqlQuery("SELECT DepName FROM Departments", true);
- // Så længe der bliver læst data fra tabellen.
- while (SqlClass.data.Read())
- {
- // henter DepName fra Departments tabellen til DepartmentComboBox.
- DepartmentComboBox.Items.Add(SqlClass.data["DepName"].ToString());
- }
- // Lukker database forbindelsen.
- SqlClass.SqlConnect.Close();
- int i = 0; // opretter variablen i gemmer værdien 0 i den.
- // Tjekker om den aktive bruger er medlem af adminstrator gruppen. (Den skal hente alle brugere ind i listview)
- if (MainForm.LoggedInGroup == 1)
- {
- // Opretter en Sql forspørgsel som henter alt fra Users, Group og Departmens tabellerne
- SqlClass.sqlQuery("SELECT * FROM Users, Groups, Departments WHERE Users.GroupID = Groups.GroupID AND Users.DepID = Departments.DepID", true);
- // Så længe der bliver læst data fra tabellen
- while (SqlClass.data.Read())
- {
- UserListView.Items.Add(SqlClass.data["UserID"].ToString()); // Gemmer UserID fra databasen i UserListView
- UserListView.Items[i].SubItems.Add(SqlClass.data["UserName"].ToString()); // Gemmer UserName fra databasen i UserListView
- UserListView.Items[i].SubItems.Add(SqlClass.data["FirstName"].ToString()); // Gemmer FirstName fra databasen i UserListView
- UserListView.Items[i].SubItems.Add(SqlClass.data["LastName"].ToString()); // Gemmer LastName fra databasen i UserListView
- UserListView.Items[i].SubItems.Add(SqlClass.data["DepName"].ToString()); // Gemmer DepName fra databasen i UserListView
- UserListView.Items[i].SubItems.Add(SqlClass.data["Email"].ToString()); // Gemmer Email fra databasen i UserListView
- UserListView.Items[i].SubItems.Add(SqlClass.data["Phone"].ToString()); // Gemmer Phone fra databasen i UserListView
- UserListView.Items[i].SubItems.Add(SqlClass.data["GroupName"].ToString()); // Gemmer GroupName fra databasen i UserListView
- i++;
- }
- // Lukker database forbindelsen
- SqlClass.SqlConnect.Close();
- }
- else
- {
- // Opretter en Sql forspørgsel som henter alt fra Users, Group og Departmens tabellerne. Hvor UserID = LoggedInUser.
- SqlClass.sqlQuery("SELECT * FROM Users, Groups, Departments WHERE Users.GroupID = Groups.GroupID AND Users.DepID = Departments.DepID AND Users.UserID ='" + MainForm.LoggedInUser + "'", true);
- // Så længe der bliver læst data fra tabellen
- while (SqlClass.data.Read())
- {
- UserListView.Items.Add(SqlClass.data["UserID"].ToString()); // Gemmer UserID fra databasen i UserListView
- UserListView.Items[i].SubItems.Add(SqlClass.data["UserName"].ToString()); // Gemmer UserName fra databasen i UserListView
- UserListView.Items[i].SubItems.Add(SqlClass.data["FirstName"].ToString()); // Gemmer FirstName fra databasen i UserListView
- UserListView.Items[i].SubItems.Add(SqlClass.data["LastName"].ToString()); // Gemmer LastName fra databasen i UserListView
- UserListView.Items[i].SubItems.Add(SqlClass.data["DepName"].ToString()); // Gemmer DepName fra databasen i UserListView
- UserListView.Items[i].SubItems.Add(SqlClass.data["Email"].ToString()); // Gemmer Email fra databasen i UserListView
- UserListView.Items[i].SubItems.Add(SqlClass.data["Phone"].ToString()); // Gemmer Phone fra databasen i UserListView
- UserListView.Items[i].SubItems.Add(SqlClass.data["GroupName"].ToString()); // Gemmer GroupName fra databasen i UserListView
- i++; // sætter i til at være sigselv plus 1.
- }
- // Lukker database forbindelsen
- SqlClass.SqlConnect.Close();
- }
- }
- /// <summary>
- /// Metoden AdminForm_Load, køres når AdminForm åbnes.
- /// Aktivere de objekter på formen, som brugerens adgangs gruppe giver adgang til.
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void AdminForm_Load(object sender, EventArgs e)
- {
- tooltip.SetToolTip(UpdateButton, "Opdater bruger"); // Sætter hjælpetekst på knappen UpdateButton
- tooltip.SetToolTip(CreateUserButton, "Tilføj bruger"); // Sætter hjælpetekst på knappen CreateUserButton
- tooltip.SetToolTip(TestSqlButton, "Test connection"); // Sætter hjælpetekst på knappen TestSqlButton
- tooltip.SetToolTip(SaveButton, "Gem"); // Sætter hjælpetekst på knappen SaveButton
- switch (MainForm.LoggedInGroup) // Switcher på LoggedInGroup
- {
- case 1: // Hvis LoggedInGroup er lig med 1.
- UserNameTextBox.Enabled = true; // Aktivere UserNameTextBox
- FirstNameTextBox.Enabled = true; // Aktivere FirstNameTextBox
- LastNameTextBox.Enabled = true; // Aktivere LastNameTextBox
- EmailTextBox.Enabled = true; // Aktivere EmailTextBox
- PhoneTextBox.Enabled = true; // Aktivere PhoneTextBox
- DepartmentComboBox.Enabled = true; // Aktivere DepartmentComboBox
- GroupComboBox.Enabled = true; // Aktivere GroupComboBox
- CreateUserButton.Enabled = true; // Aktivere CreateUserButton
- SqlUserNameTextBox.Enabled = true; // Aktivere SqlUserNameTextBox
- SqlPasswordTextBox.Enabled = true; // Aktivere SqlPasswordTextBox
- IpAddressTextBox.Enabled = true; // Aktivere IpAddressTextBox
- TestSqlButton.Enabled = true; // Aktivere TestSqlButton
- SaveButton.Enabled = true; // Aktivere SaveButton
- AllowLoginCheckBox.Enabled = true; // Aktivere AllowLoginCheckBox
- ReqPassChaCheckBox.Enabled = true; // Aktivere ReqPassChaCheckBox
- break; // Hopper ud af Switch / Case.
- case 2:
- break;
- case 3:
- break;
- case 4:
- break;
- default:
- break;
- }
- ClearAdminForm(); // Kører metoden ClearAdminForm, se linje 29
- }
- /// <summary>
- /// Metoden UserListView_Click, Kører når der klikkes på knappen UserListView.
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void UserListView_Click(object sender, EventArgs e)
- {
- if (UserListView.SelectedItems.Count != 0)
- {
- // Opretter en Sql forspørgsel som henter alt fra Users, Group og Departmens tabellerne. Hvor UserID er lig det valgte items text fra UserListView
- SqlClass.sqlQuery("SELECT * FROM Users, Groups, Departments WHERE Users.GroupID = Groups.GroupID AND Users.DepID = Departments.DepID AND Users.UserID =" + int.Parse(UserListView.SelectedItems[0].Text) , true);
- // Så længe der bliver læst data fra tabellen
- while (SqlClass.data.Read())
- {
- TempUserID = int.Parse(SqlClass.data["UserID"].ToString()); // Gemmer UserID fra databasen i TempUserID.
- UserNameTextBox.Text = SqlClass.data["UserName"].ToString(); // Gemmer UserName fra databasen i UserNameTextBox.
- FirstNameTextBox.Text = SqlClass.data["FirstName"].ToString(); // Gemmer FirstName fra databasen i FirstNameTextBox.
- LastNameTextBox.Text = SqlClass.data["LastName"].ToString(); // Gemmer LastName fra databasen i LastNameTextBox.
- if (int.Parse(SqlClass.data["NewPassReq"].ToString()) == 1)
- {
- ReqPassChaCheckBox.Checked = true; // Sætter v i ReqPassChaCheckBox.
- }
- else
- {
- ReqPassChaCheckBox.Checked = false; // Fjerner v i ReqPassChaCheckBox.
- }
- EmailTextBox.Text = SqlClass.data["Email"].ToString(); // Gemmer Email fra databasen i EmailTextBox.
- PhoneTextBox.Text = SqlClass.data["Phone"].ToString(); // Gemmer Phone fra databasen i PhoneTextBox.
- if (int.Parse(SqlClass.data["AllowLogin"].ToString()) == 0)
- {
- AllowLoginCheckBox.Checked = true; // Sætter v i AllowLoginCheckBox.
- }
- else
- {
- AllowLoginCheckBox.Checked = false; // Fjerner v i AllowLoginCheckBox.
- }
- GroupComboBox.SelectedIndex = GroupComboBox.Items.IndexOf(SqlClass.data["GroupName"].ToString()); // Sætter den valgte værdi i GroupComboBox til resultatet af GroupName.
- DepartmentComboBox.SelectedIndex = DepartmentComboBox.Items.IndexOf(SqlClass.data["DepName"].ToString()); // Sætter den valgte værdi i DepartmentComboBox til resultatet af DepName.
- }
- SqlClass.SqlConnect.Close(); // Lukker database forbindelsen
- }
- }
- /// <summary>
- /// Metoden UpdateButton_Click, køres når der klikkes på knappen UpdateButton.
- /// Opdatere den valgte brugers informationer i databasen.
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void UpdateButton_Click(object sender, EventArgs e)
- {
- // Hvis UserNameTextBox.Text ikker tom og .......
- if (UserNameTextBox.Text != "" && FirstNameTextBox.Text != "" && LastNameTextBox.Text != "" && EmailTextBox.Text != "" && PhoneTextBox.Text != "" && DepartmentComboBox.Text != "" && GroupComboBox.Text != "")
- {
- // Opretter en Sql forspørgsel som henter GroupID fra Groups, hvor GroupName er lig med GroupComboBox.Text.
- SqlClass.sqlQuery("SELECT GroupID FROM Groups WHERE GroupName = '" + GroupComboBox.Text + "'", true);
- while (SqlClass.data.Read())
- {
- TempGroupID = int.Parse(SqlClass.data["GroupID"].ToString()); // Gemmer GroupID fra databasen TempGroupID.
- }
- SqlClass.SqlConnect.Close(); // Lukker database forbindelsen.
- // Opretter en Sql forspørgsel som henter DepID fra Departments, hvor DepName er lig med DepartmentComboBox.Text
- SqlClass.sqlQuery("SELECT DepID FROM Departments WHERE DepName = '" + DepartmentComboBox.Text + "'", true);
- while (SqlClass.data.Read())
- {
- TempDepID = int.Parse(SqlClass.data["DepID"].ToString()); // Gemmer DepID fra databasen TempDepID.
- }
- SqlClass.SqlConnect.Close(); // Lukker database forbindelsen.
- switch (ReqPassChaCheckBox.Checked) // Switcher på ReqPassChaCheckBox.
- {
- case true: // Hvis ReqPassChaCheckBox er checked.
- ReqPass = 1; // Sætter ReqPass til 1.
- break; // Hopper ud af Switch / Case.
- case false: // Hvis ReqPassChaCheckBox IKKE er checked.
- ReqPass = 0; // Sætter ReqPass til 0.
- break; // Hopper ud af Switch / Case.
- }
- switch (AllowLoginCheckBox.Checked) // Switcher på AllowLoginCheckBox.
- {
- case true: // Hvis AllowLoginCheckBox er checked.
- AllowLogin = 0; // Sætter AllowLogin til 0.
- break; // Hopper ud af Switch / Case.
- case false: // Hvis AllowLoginCheckBox IKKE er checked.
- AllowLogin = 1; // Sætter ReqPass til 1.
- break; // Hopper ud af Switch / Case.
- }
- // Hvis PasswordTextBox.Text && RepeatPasswordTextBox.Text er tomme, skal der opdateres uden at passworded bliver opdateret.
- if (PasswordTextBox.Text == "" && RepeatPasswordTextBox.Text == "")
- {
- // Opretter en Sql forspørgsel der opdatere; UserName, FirstName, LastName,DepID, Email, Phone, GroupID, NewReqPass, AllowLogin. For den valgte bruger.
- SqlClass.sqlQuery("UPDATE Users SET UserName = '" + UserNameTextBox.Text + "', FirstName = '" + FirstNameTextBox.Text + "', LastName = '" + LastNameTextBox.Text + "', DepID = " + TempDepID + ", Email = '" + EmailTextBox.Text + "', Phone = " + PhoneTextBox.Text + ", GroupID = " + TempGroupID + ", NewPassReq = " + ReqPass + ", AllowLogin = " + AllowLogin + " WHERE UserID = " + TempUserID, false);
- SqlClass.SqlConnect.Close(); // Lukker database forbindelsen.
- }
- // Ellers hvis PasswordTextBox og RepeatPasswordTextBox er ens og ikke tomme.
- else if (PasswordTextBox.Text == RepeatPasswordTextBox.Text && PasswordTextBox.Text != "")
- {
- // Opretter en Sql forspørgsel der opdatere; UserName, Password (I krypteret form), FirstName, LastName,DepID, Email, Phone, GroupID, NewReqPass, AllowLogin. For den valgte bruger.
- SqlClass.sqlQuery("UPDATE Users SET UserName = '" + UserNameTextBox.Text + "', Password = '" + CryptoClass.Encrypt(RepeatPasswordTextBox.Text) + "', FirstName = '" + FirstNameTextBox.Text + "', LastName = '" + LastNameTextBox.Text + "', DepID = " + TempDepID + ", Email = '" + EmailTextBox.Text + "', Phone = " + PhoneTextBox.Text + ", GroupID = " + TempGroupID + ", NewPassReq = 0, AllowLogin = " + AllowLogin + " WHERE UserID = " + TempUserID, false);
- SqlClass.SqlConnect.Close(); // Lukker database forbindelsen.
- }
- else
- {
- // Viser en fejl besked.
- MessageBox.Show("Passwords stemte ikke overens!");
- }
- ClearAdminForm(); // Køre Metoden ClearAdminForm. Se linje 29.
- }
- else
- {
- // Viser en fejl besked.
- MessageBox.Show("Udfyld venligst alle felter");
- }
- }
- /// <summary>
- /// Metoden CreateUserButton_Click. Køres når der klikkes på CreateUserButton.
- /// Opretter en ny bruger og gemmer informationerne i databasen.
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void CreateUserButton_Click(object sender, EventArgs e)
- {
- // Kontrollere at alle felter er udfyldt.
- if (UserNameTextBox.Text != "" && PasswordTextBox.Text != "" && FirstNameTextBox.Text != "" && LastNameTextBox.Text != "" && EmailTextBox.Text != "" && PhoneTextBox.Text != "" && DepartmentComboBox.Text != "" && GroupComboBox.Text != "")
- {
- // Henter Alle Username fra Users tabellen.
- SqlClass.sqlQuery("SELECT UserName FROM Users", true);
- while (SqlClass.data.Read())
- {
- // Kontollere om brugernavnet der er tastet i UserNameTextBox.Text allerede eksistere i databasen.
- if (UserNameTextBox.Text == SqlClass.data["UserName"].ToString())
- {
- ExistingUserFlag = true; // Sætter ExistingUserFlag til true. Dette gøres hvis brugernavnet allerede eksistere.
- }
- }
- SqlClass.SqlConnect.Close(); // Lukker database forbindelsen.
- // Hvis ExistingUserFlag er lig med True
- if (ExistingUserFlag)
- {
- // Viser fejl besked.
- MessageBox.Show("Brugeren findes allerede! Prøv igen...");
- }
- else
- {
- // Henter GroupID på den gruppe der er valgt i GroupComboBox.
- SqlClass.sqlQuery("SELECT GroupID FROM Groups WHERE GroupName = '" + GroupComboBox.Text + "'", true);
- while (SqlClass.data.Read())
- {
- TempGroupID = int.Parse(SqlClass.data["GroupID"].ToString()); // Gemmer GroupID fra databasen i TempGroupID.
- }
- SqlClass.SqlConnect.Close(); // Lukker Database forbindelsen.
- // Henter DepID på den gruppe der er valgt i DepartmentComboBox.
- SqlClass.sqlQuery("SELECT DepID FROM Departments WHERE DepName = '" + DepartmentComboBox.Text + "'", true);
- while (SqlClass.data.Read())
- {
- TempDepID = int.Parse(SqlClass.data["DepID"].ToString()); // Gemmer DepID fra databasen i TempDepID.
- }
- SqlClass.SqlConnect.Close(); // Lukker Database forbindelsen.
- switch (ReqPassChaCheckBox.Checked) // Switcher på ReqPassChaCheckBox.
- {
- case true: // Hvis ReqPassChaCheckBox er checked.
- ReqPass = 1; // Sætter ReqPass til 1.
- break; // Hopper ud af Switch / Case.
- case false: // Hvis ReqPassChaCheckBox IKKE er checked.
- ReqPass = 0; // Sætter ReqPass til 0.
- break; // Hopper ud af Switch / Case.
- }
- switch (AllowLoginCheckBox.Checked) // Switcher på AllowLoginCheckBox.
- {
- case true: // Hvis ReqPassChaCheckBox er checked.
- AllowLogin = 0; // Sætter ReqPass til 0.
- break; // Hopper ud af Switch / Case.
- case false: // Hvis ReqPassChaCheckBox IKKE er checked.
- AllowLogin = 1; // Sætter ReqPass til 1.
- break; // Hopper ud af Switch / Case.
- }
- // Kontrollere on passwords er indtastet end og at de ikker blanke.
- if (PasswordTextBox.Text == RepeatPasswordTextBox.Text && PasswordTextBox.Text != "" && RepeatPasswordTextBox.Text != "")
- {
- // Opretter en Sql forspørgsel der Indsætter data in for den nye bruger.
- SqlClass.sqlQuery("INSERT INTO Users (UserName, Password, FirstName, LastName, DepID, Email, Phone, GroupID, NewPassReq, AllowLogin) VALUES ('" + UserNameTextBox.Text + "','" + CryptoClass.Encrypt(RepeatPasswordTextBox.Text) + "','" + FirstNameTextBox.Text + "','" + LastNameTextBox.Text + "'," + TempDepID + ",'" + EmailTextBox.Text + "'," + int.Parse(PhoneTextBox.Text) + "," + TempGroupID + "," + ReqPass + "," + AllowLogin + ")", false);
- SqlClass.SqlConnect.Close(); // Lukker Database forbindelsen.
- ClearAdminForm(); // Kører metoden ClearAdminForm. Se Linje 29
- }
- else
- {
- // Viser en fejlbesked.
- MessageBox.Show("Passwords stemte ikke overens!");
- }
- }
- ExistingUserFlag = false; // Sætter ExistingUserFlag til false
- }
- else
- {
- // Viser en fejlbesked.
- MessageBox.Show("Udfyld venligst alle felter");
- }
- }
- /// <summary>
- /// Metoden PhoneTextBox_KeyPress. Kører når der tastes i PhoneTextBox_KeyPress.
- /// Sørger for at der ikke kan tastes andet et tal i PhoneTextBox.
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e">Den tast der er trykket på på tastaturet</param>
- private void PhoneTextBox_KeyPress(object sender, KeyPressEventArgs e)
- {
- // Sørger for kun tal kan tastes i Textboxen
- if (char.IsDigit(e.KeyChar) || char.IsControl(e.KeyChar))
- {
- e.Handled = false;
- }
- else
- {
- e.Handled = true;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement