public ActionResult Save(Teacher aTeacher)
 {
     ViewBag.response = aTeacherManager.Save(aTeacher);
     ViewBag.Designations = aTeacherManager.GetAllDesignations();
     ViewBag.Departments = aDepartmentManager.GetAllDepartments();
     return View();
 }
        public void Save(Teacher aTeacher)
        {
            string query = "INSERT INTO Teachers (TeacherName, TeacherAddress, TeacherEmail, TeacherContactNo, CreditTaken, DesignationId, DepartmentId) VALUES (@name, @address, @email, @contact, @creditTaken, @designationId, @deptId)";
            using (connection = new SqlConnection(connectionString))
            using (SqlCommand command = new SqlCommand(query, connection))
            {
                command.Parameters.Clear();
                command.Parameters.Add("name", sqlDbType: SqlDbType.NVarChar);
                command.Parameters["name"].Value = aTeacher.TeacherName;

                command.Parameters.Add("address", sqlDbType: SqlDbType.NVarChar);
                command.Parameters["address"].Value = aTeacher.TeacherAddress;

                command.Parameters.Add("email", sqlDbType: SqlDbType.NVarChar);
                command.Parameters["email"].Value = aTeacher.TeacherEmail;

                command.Parameters.Add("contact", sqlDbType: SqlDbType.NVarChar);
                command.Parameters["contact"].Value = aTeacher.TeacherContactNo;

                command.Parameters.Add("creditTaken", sqlDbType: SqlDbType.Decimal);
                command.Parameters["creditTaken"].Value = aTeacher.CreditTaken;

                command.Parameters.Add("designationId", sqlDbType: SqlDbType.Int);
                command.Parameters["designationId"].Value = aTeacher.DesignationId;

                command.Parameters.Add("deptId", sqlDbType: SqlDbType.Int);
                command.Parameters["deptId"].Value = aTeacher.DepartmentId;

                connection.Open();
                command.ExecuteNonQuery();
            }
        }
        public ActionResponse Save(Teacher aTeacher)
        {
            ActionResponse response = new ActionResponse();
            try
            {
                bool isEmailExists = aTeacherGateway.IsEmailExists(aTeacher.TeacherEmail);
                if (isEmailExists)
                {
                    response.Class = "danger";
                    response.Message = "Email [" + aTeacher.TeacherEmail + "] is already exists.";
                    return response;
                }

                aTeacherGateway.Save(aTeacher);
                response.Class = "success";
                response.Message = "Teacher Saved Successfully";
            }
            catch (SqlException ex)
            {
                response.Class = "warning";
                response.Message = ex.Message;
            }
            return response;
        }
        public List<Teacher> GetTeachersByDepartment(int departmentId)
        {
            string query = "SELECT * FROM Teachers WHERE DepartmentId =@deptId ORDER BY TeacherName ASC";
            using (connection = new SqlConnection(connectionString))
            using (SqlCommand command = new SqlCommand(query, connection))
            {
                command.Parameters.Clear();
                command.Parameters.Add("deptId", sqlDbType: SqlDbType.Int);
                command.Parameters["deptId"].Value = departmentId;

                List<Teacher> teachers = new List<Teacher>();
                connection.Open();
                SqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    Teacher aTeacher = new Teacher
                    {
                        TeacherId = Convert.ToInt32(reader["TeacherId"].ToString()),
                        TeacherName = reader["TeacherName"].ToString(),
                        TeacherAddress = reader["TeacherAddress"].ToString(),
                        TeacherEmail = reader["TeacherEmail"].ToString(),
                        TeacherContactNo = reader["TeacherContactNo"].ToString(),
                        CreditTaken = Convert.ToDecimal(reader["CreditTaken"].ToString()),
                        DesignationId = Convert.ToInt32(reader["DesignationId"].ToString()),
                        DepartmentId = Convert.ToInt32(reader["DepartmentId"].ToString())
                    };
                    teachers.Add(aTeacher);
                }
                return teachers;
            }
        }