//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; }