public void Add(StudentModel student)
        {
            if (student.MiddleName == null)
                student.MiddleName = String.Empty;

            if (student.Suffix == null)
                student.Suffix = String.Empty;

            var sql = @"
                INSERT INTO Students (Id, FirstName, MiddleName, LastName, Suffix, DateOfBirth)
                VALUES (@Id, @FirstName, @MiddleName, @LastName, @Suffix, @DateOfBirth)";

            var parameters = new[]
            {
                new SqlParameter("@Id", student.Id),
                new SqlParameter("@FirstName", student.FirstName),
                new SqlParameter("@MiddleName", student.MiddleName),
                new SqlParameter("@LastName", student.LastName),
                new SqlParameter("@Suffix", student.Suffix),
                new SqlParameter("@DateOfBirth", student.DateOfBirth)
            };

            using (var connection = GetAndOpenConnection())
            using (var command = GetCommand(sql, connection, parameters))
                command.ExecuteNonQuery();
        }
        public IEnumerable<StudentModel> FindAll()
        {
            var sql = @"SELECT * FROM Students";
            var students = new List<StudentModel>();

            using (var connection = GetAndOpenConnection())
            using (var command = GetCommand(sql, connection))
            using (var reader = command.ExecuteReader())
            {
                while (reader.Read())
                {
                    var student = new StudentModel();
                    student.DateOfBirth = Convert.ToDateTime(reader["DateOfBirth"]);
                    student.FirstName = Convert.ToString(reader["FirstName"]);
                    student.Id = Guid.Parse(Convert.ToString(reader["Id"]));
                    student.LastName = Convert.ToString(reader["LastName"]);
                    student.MiddleName = Convert.ToString(reader["MiddleName"]);
                    student.Suffix = Convert.ToString(reader["Suffix"]);

                    students.Add(student);
                }
            }

            return students;
        }
        public void AddStudent()
        {
            var student = new StudentModel();

            controller.Add(student);
            mockStudentRepository.Verify(r => r.Add(student), Times.Once);
            mockStudentRepository.Verify(r => r.Add(It.IsAny<StudentModel>()), Times.Once);
        }
        public void AddStudent()
        {
            var newStudent = new StudentModel();
            newStudent.Id = Guid.NewGuid();
            newStudent.FirstName = String.Format("First Name {0}", newStudent.Id);
            newStudent.MiddleName = String.Format("Middle Name {0}", newStudent.Id);
            newStudent.LastName = String.Format("Last Name {0}", newStudent.Id);
            newStudent.Suffix = String.Format("Suffix {0}", newStudent.Id);
            newStudent.DateOfBirth = DateTime.Now.Date;

            StudentRepository.Add(newStudent);

            var students = StudentRepository.FindAll();
            var student = students.First(s => s.Id == newStudent.Id);
            AssertStudentsAreEqual(student, newStudent);
        }
        public void Update(StudentModel student)
        {
            if (student.MiddleName == null)
                student.MiddleName = String.Empty;

            if (student.Suffix == null)
                student.Suffix = String.Empty;

            var sql = @"
                UPDATE Students
                SET
                    FirstName = @FirstName,
                    MiddleName = @MiddleName,
                    LastName = @LastName,
                    Suffix = @Suffix,
                    DateOfBirth = @DateOfBirth
                WHERE Id = @Id";

            var parameters = new[]
            {
                new SqlParameter("@Id", student.Id),
                new SqlParameter("@FirstName", student.FirstName),
                new SqlParameter("@MiddleName", student.MiddleName),
                new SqlParameter("@LastName", student.LastName),
                new SqlParameter("@Suffix", student.Suffix),
                new SqlParameter("@DateOfBirth", student.DateOfBirth)
            };

            using (var connection = GetAndOpenConnection())
            using (var command = GetCommand(sql, connection, parameters))
                command.ExecuteNonQuery();
        }
 private void AssertStudentsAreEqual(StudentModel actual, StudentModel expected)
 {
     Assert.That(actual.Id, Is.EqualTo(expected.Id));
     Assert.That(actual.FirstName, Is.EqualTo(expected.FirstName));
     Assert.That(actual.MiddleName, Is.EqualTo(expected.MiddleName));
     Assert.That(actual.LastName, Is.EqualTo(expected.LastName));
     Assert.That(actual.Suffix, Is.EqualTo(expected.Suffix));
     Assert.That(actual.DateOfBirth, Is.EqualTo(expected.DateOfBirth));
 }
        private StudentModel CreateStudent()
        {
            var sql = @"
                INSERT INTO Students (Id, FirstName, MiddleName, LastName, Suffix, DateOfBirth)
                VALUES (@Id, @FirstName, @MiddleName, @LastName, @Suffix, @DateOfBirth)";

            var student = new StudentModel();
            student.Id = Guid.NewGuid();
            student.FirstName = String.Format("First Name {0}", student.Id);
            student.MiddleName = String.Format("Middle Name {0}", student.Id);
            student.LastName = String.Format("Last Name {0}", student.Id);
            student.Suffix = String.Format("Suffix {0}", student.Id);
            student.DateOfBirth = DateTime.Now.Date;

            var parameters = new[]
            {
                new SqlParameter("@Id", student.Id),
                new SqlParameter("@FirstName", student.FirstName),
                new SqlParameter("@MiddleName", student.MiddleName),
                new SqlParameter("@LastName", student.LastName),
                new SqlParameter("@Suffix", student.Suffix),
                new SqlParameter("@DateOfBirth", student.DateOfBirth)
            };

            using (var connection = GetAndOpenConnection())
            using (var command = GetCommand(sql, connection, parameters))
                command.ExecuteNonQuery();

            return student;
        }
        private StudentModel CreateStudent()
        {
            var student = new StudentModel();
            student.Id = Guid.NewGuid();
            student.FirstName = String.Format("First Name {0}", student.Id);
            student.MiddleName = String.Format("Middle Name {0}", student.Id);
            student.LastName = String.Format("Last Name {0}", student.Id);
            student.Suffix = String.Format("Suffix {0}", student.Id);
            student.DateOfBirth = DateTime.Now.Date;

            StudentRepository.Add(student);

            return student;
        }
        private CourseTakenModel CreateCourseTaken(StudentModel student, CourseModel course)
        {
            var courseTaken = new CourseTakenModel
            {
                Student = new NameModel { Id = student.Id, Name = student.FirstName },
                Course = new NameModel { Id = course.Id, Name = course.Name },
                Grade = Random.Next(110)
            };

            var sql = @"
                INSERT INTO CoursesTaken (Student, Course, Grade)
                VALUES (@Student, @Course, @Grade)";

            var parameters = new[]
            {
                new SqlParameter("@Student", courseTaken.Student.Id),
                new SqlParameter("@Course", courseTaken.Course.Id),
                new SqlParameter("@Grade", courseTaken.Grade)
            };

            using (var connection = GetAndOpenConnection())
            using (var command = GetCommand(sql, connection, parameters))
                command.ExecuteNonQuery();

            return courseTaken;
        }
 public void Setup()
 {
     student = CreateStudent();
     course = CreateCourse();
 }
 public void Update(StudentModel student)
 {
     studentRepository.Update(student);
 }
 public void Add(StudentModel student)
 {
     studentRepository.Add(student);
 }