public List<Department> GetAllDepartments()
        {
            try
            {
                List<Department> departments = new List<Department>();
                connection.Open();
                string departmentQuery = "SELECT * FROM t_Department";
                command.CommandText = departmentQuery;
                command.Parameters.Clear();
                SqlDataReader departmentReader = command.ExecuteReader();
                while (departmentReader.Read())
                {
                    Department aDepartment = new Department();
                    aDepartment.DepartmentId = Convert.ToInt16(departmentReader[0].ToString());
                    aDepartment.DepartmentCode = departmentReader[1].ToString();
                    aDepartment.DepartmentName = departmentReader[2].ToString();
                    departments.Add(aDepartment);

                }
                return departments;
            }
            finally
            {
                connection.Close();
            }
        }
 private bool HasThisDepartmentIdExist(Department aDepartment)
 {
     List<Department> departments = new List<Department>();
     departments = GetAllDepartments();
     foreach (Department departmentObj in departments)
     {
         if (departmentObj.DepartmentCode == aDepartment.DepartmentCode)
             return true;
     }
     return false;
 }
        protected void saveButton_Click(object sender, EventArgs e)
        {
            if (!IsValid)
            {
                return;
            }

            if (codeTextBox.Value.Length < 3)
            {
                msgLabel.ForeColor = Color.Red;
                msgLabel.Text = "Department Code Must be Three Character";
                return;
            }
            DepartmentManager aDepartmentManager = new DepartmentManager();
            try
            {
                aDepartment = new Department();
                aDepartment.DepartmentCode = codeTextBox.Value;
                aDepartment.DepartmentName = nameTextBox.Value;
                string msg = aDepartmentManager.SaveDepartment(aDepartment);
                if (msg == "Saved")
                {
                    msgLabel.ForeColor = Color.Green;
                    msgLabel.Text = msg;
                    ClearAllTextBoxses();
                }
                else
                {

                    msgLabel.ForeColor = Color.Red;
                    msgLabel.Text = msg;
                }

            }

            catch (SqlException sqlException)
            {
                msgLabel.ForeColor = Color.Red;
                msgLabel.Text = "Database error.See details error: " + sqlException.Message;

            }
            catch (Exception exception)
            {
                msgLabel.ForeColor = Color.Red;
                string errorMessage = "Unknow error occured.";
                errorMessage += exception.Message;
                if (exception.InnerException != null)
                {
                    errorMessage += exception.InnerException.Message;
                }
                msgLabel.Text = errorMessage;
            }
        }
 public Department GetDepartment(Int16 departmentId)
 {
     aDepartmentGateway = new DepartmentGateway();
     List<Department> departments = new List<Department>();
     departments = GetAllDepartments();
     Department aDepartment = new Department();
     foreach (var department in departments)
     {
         if (department.DepartmentId == departmentId)
         {
             aDepartment.DepartmentId = department.DepartmentId;
             aDepartment.DepartmentCode = department.DepartmentCode;
             aDepartment.DepartmentName = department.DepartmentName;
             return aDepartment;
         }
     }
     return aDepartment;
 }
        public string SaveDepartment(Department aDepartment)
        {
            aDepartmentGateway = new DepartmentGateway();
            if (!HasThisDepartmentIdExist(aDepartment))

                if (!HasThisDepartmentNameExist(aDepartment))
                {

                    return aDepartmentGateway.SaveDepartment(aDepartment);
                }
                else
                {
                    return "This Department Name exist.";
                }

            else
            {
                return "This Department Code exist.";
            }
        }
        public string SaveDepartment(Department aDepartment)
        {
            try
            {
                connection.Open();
                string departmentAddQuery = "INSERT INTO t_Department VALUES(@code,@name)";
                command.CommandText = departmentAddQuery;
                command.Parameters.Clear();
                command.Parameters.AddWithValue("@code", aDepartment.DepartmentCode);
                command.Parameters.AddWithValue("@name", aDepartment.DepartmentName);
                command.ExecuteNonQuery();

                return "Saved";
            }

            finally
            {
                connection.Close();
            }
        }