// CONSTRUCTOR
 /// <summary>
 /// constructor for adress
 /// </summary>
 /// <param name="propertyName">the property name</param>
 /// <param name="propertyNumber">the property number</param>
 /// <param name="postCode">the postcode</param>
 public Address(string propertyName, int propertyNumber,
     PostCode postCode)
 {
     this.propertyName = propertyName;
     this.propertyNumber = propertyNumber;
     this.postCode = postCode;
 }
        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;
        }