//CONSTRUCTORS
 /// <summary>
 /// constructor for HourlyPaidEmployee 
 /// </summary>
 /// <param name="employeeId">the employee's id number</param>
 /// <param name="name">the employee's name</param>
 /// <param name="username">the employee's username</param>
 /// <param name="phoneNumber">the employee's phone number</param>
 public HourlyPaidEmployee(int employeeId, string name, 
     string username, Address address,string phoneNumber)
     : base(employeeId, name, username, address, phoneNumber)
 {
 }
        private Employee MapTableToEmployeeClass(SqlCeDataReader reader)
        {
            Employee emp = null;
            //  Strip out the values from the query .
            int id = (int) reader["EmployeeId"];
            string name =(string) reader["Name"];
            string userName = (string)reader["UserName"];
            string phoneNumber = (string)reader["PhoneNumber"];
            //  Optional field, Nulls possible.
            int supervisorId = 0;
            if(reader["SupervisorId"] != System.DBNull.Value)
                supervisorId = (int)reader["SupervisorId"];        // Can be null.  Dooooooohh!  Thicko.

            int deptId = (int)reader["DeptId"];
            int addressId = (int)reader["AddressId"];
            string Type = ((byte)reader["Type"]).ToString();
            //  optional field.
            int paygrade = 0;
            if (reader["PayGrade"] != System.DBNull.Value)
                paygrade = (int)reader["PayGrade"];

            string deptname = (string)reader["DeptName"];
            string postcode = (string)reader["PostCode"];
            string propertyName = (string)reader["PropertyName"];
            //  Optional field.
            int propertyNumber = 0;
            if (reader["propertyNumber"] != System.DBNull.Value)
                int.TryParse((string)reader["PropertyNumber"], out propertyNumber);

            //  Construct a PostCode class
            PostCode postCode = new PostCode(postcode);

            //  Construct an Address class
            Address address = new Address(propertyName, propertyNumber, postCode);

            //  Construct the Department class
            Department department = new Department();
            department.DepartmentName = deptname;

            //  Instantiate the relevent employee class
            if (Type == "1")
                emp = new SalariedEmployee(id, name, userName, address, phoneNumber, paygrade);
            else
                emp = new HourlyPaidEmployee(id, name, userName, address, phoneNumber);

            return emp;
        }