/// <summary>
        /// Gets a single employee
        /// </summary>
        /// <param name="Emp">Employee parameter</param>
        /// <returns>Returns a single employee</returns>
        public Employee GetEmployee(Employee Emp)
        {
            SqlConnection corpcn = new SqlConnection(Settings.Default.cnHelpDesk);

            var sb = new StringBuilder();
            sb.Append("Select EmpID, EmpFName, EmpLName, EmpUName ");
            sb.Append("From Employee ");
            sb.Append("Where EmpID = '").Append(Emp.EmpID).Append("'");

            using (corpcn)
            {
                //Needed this here to be able to use the variable towards the end. Some type of scope error.
                Employee employee = null;

                SqlCommand corpCmd = corpcn.CreateCommand();
                corpCmd.CommandType = CommandType.Text;
                corpCmd.CommandText = sb.ToString();
                corpcn.Open();
                SqlDataReader corprdr = corpCmd.ExecuteReader();

                while (corprdr.Read())
                {
                    employee = CreateEmployee(corprdr);
                }

                corprdr.Close();

                return employee;
            }
        }
        /// <summary>
        /// Adds an employee
        /// </summary>
        /// <param name="emp">Employee parameter</param>
        public void InsertEmployee(Employee emp)
        {
            SqlConnection corpcn = new SqlConnection(Settings.Default.cnHelpDesk);

            var sb = new StringBuilder();
            sb.Append("Insert Into [Employee]");
            sb.Append(" ([EmpFName], [EmpLName], [EmpUName])");
            sb.Append(" Values (");
            sb.Append("'").Append(emp.EmpFName).Append("',");
            sb.Append("'").Append(emp.EmpLName).Append("',");
            sb.Append("'").Append(emp.EmpUName).Append("')");

            using (corpcn)
            {
                SqlCommand corpCmd = corpcn.CreateCommand();
                corpCmd.CommandType = CommandType.Text;
                corpCmd.CommandText = sb.ToString();
                corpcn.Open();
                corpCmd.ExecuteNonQuery();
            }
        }
 /// <summary>
 /// Creates an internal employee
 /// </summary>
 /// <param name="dr">SQL Data Reader</param>
 /// <returns>Employee</returns>
 private Employee CreateEmployee(SqlDataReader dr)
 {
     var e = new Employee();
     e.EmpID = (int)dr["EmpID"];
     e.EmpFName = dr["EmpFName"].ToString();
     e.EmpLName = dr["EmpLName"].ToString();
     e.EmpUName = dr["EmpUName"].ToString();
     return e;
 }
        /// <summary>
        /// Updates an existing employee
        /// </summary>
        /// <param name="emp">Employee parameter</param>
        public void UpdateEmployee(Employee emp)
        {
            SqlConnection corpcn = new SqlConnection(Settings.Default.cnHelpDesk);

            var sb = new StringBuilder();
            sb.Append("Update [Employee]");
            sb.Append(" Set ");
            sb.Append("[EmpFName]='").Append(emp.EmpFName).Append("',");
            sb.Append("[EmpLName]='").Append(emp.EmpLName).Append("',");
            sb.Append("[EmpUName]='").Append(emp.EmpUName).Append("'");
            sb.Append("Where [EmpID]='").Append(emp.EmpID).Append("';");

            using (corpcn)
            {
                SqlCommand corpCmd = corpcn.CreateCommand();
                corpCmd.CommandType = CommandType.Text;
                corpCmd.CommandText = sb.ToString();
                corpcn.Open();
                corpCmd.ExecuteNonQuery();
            }
        }
 /// <summary>
 /// Gets an Employee Username by ID
 /// </summary>
 /// <param name="eID">Employee ID</param>
 /// <returns></returns>
 public string GetEmployeeByID(int eID)
 {
     Employee cluster = new Employee();
     foreach (Employee emp in empsList)
     {
         if (emp.EmpID == eID)
         {
             cluster = emp;
         }
     }
     cluster = eR.GetEmployee(cluster);
     //Tuples allow returning multiple values back to the caller of a method. http://msdn.microsoft.com/en-us/library/dd268536(v=vs.110).aspx
     return cluster.EmpUName;
 }
 /// <summary>
 /// Gets a single employee
 /// </summary>
 /// <param name="eUN">Employee User Name</param>
 /// <returns>Single Employee</returns>
 public Tuple<int, string, string, string> GetEmployee(string eUN)
 {
     Employee cluster = new Employee();
     foreach (Employee emp in empsList)
     {
         if (emp.EmpUName == eUN)
         {
             cluster = emp;
         }
     }
     cluster = eR.GetEmployee(cluster);
     //Tuples allow returning multiple values back to the caller of a method. http://msdn.microsoft.com/en-us/library/dd268536(v=vs.110).aspx
     return new Tuple<int,string,string,string>(cluster.EmpID, cluster.EmpFName, cluster.EmpLName, cluster.EmpUName);
 }