public async Task <RegisterCourseOutput> RegisterCourse(RegisterCourseInput arg) { var student = await _uow.StudentRepository.GetStudentWithRegisteredCourses(arg.StudentId); var errors = new List <string>(); foreach (var item in arg.SelectedCourseCodes) { var course = await _uow.CourseRepository.GetByIdAsync(item); var res = student.RegisterForCourse(course); if (!res) { errors.Add($"unable to register for {course.Name}"); } else { var registerCourse = new Entities.RegisteredCourse() { StudentId = arg.StudentId, CourseId = course.Id }; await _uow.RegisteredCourseRepository.AddAsync(registerCourse); } } return(new RegisterCourseOutput(!errors.Any(), errors)); }
public async Task <List <string> > RegisterCourseAsync(RegisterCourseInput arg) { var student = await _uow.StudentRepository.GetStudentWithRegisteredCourses(arg.StudentId); var errors = new List <string>(); foreach (var item in arg.SelectedCourseCodes) { var course = await _uow.CourseRepository.GetByIdAsync(item); var res = student.RegisterForCourse(course); if (!res) { errors.Add($"unable to register for {course?.Name}"); } else { var registerdCourse = new RegisteredCourse() { StudentId = arg.StudentId, CourseId = course.Id }; await _uow.RegisteredCourseRepository.AddAsync(registerdCourse); await _uow.CommitAsync(); } } return(errors); //return new RegisterCourseOutput(!errors.Any(), errors, errors.Any() ? null : "Congratulates"); }
public async Task Should_Return_Unable_To_Register() { // Arrange var course = new Course { Id = 1, Name = "Javascript" }; _uowMock.Setup(p => p.StudentRepository.GetStudentWithRegisteredCourses(It.IsAny <int>())).Returns(Task.FromResult(_studentMock.Object)); _uowMock.Setup(p => p.CourseRepository.GetByIdAsync(It.IsAny <int>())).Returns(Task.FromResult(course)); _studentMock.Setup(p => p.RegisterForCourse(It.IsAny <Course>())).Returns(false); _uowMock.Setup(p => p.RegisteredCourseRepository.AddAsync(It.IsAny <RegisteredCourse>())); var input = new RegisterCourseInput() { StudentId = 1, SelectedCourseCodes = new List <int> { 1 } }; // Act var result = await _courseService.RegisterCourseAsync(input); // Assert Assert.IsTrue(result.Contains("unable to register for Javascript")); }
public async Task Should_Return_List_String_Instance() { // Arrange _uowMock.Setup(p => p.StudentRepository.GetStudentWithRegisteredCourses(It.IsAny <int>())).Returns(Task.FromResult(_studentMock.Object)); _uowMock.Setup(p => p.CourseRepository.GetByIdAsync(It.IsAny <int>())).Returns(Task.FromResult(new Course())); _studentMock.Setup(p => p.RegisterForCourse(It.IsAny <Course>())).Returns(true); _uowMock.Setup(p => p.RegisteredCourseRepository.AddAsync(It.IsAny <RegisteredCourse>())); var input = new RegisterCourseInput() { StudentId = 1, SelectedCourseCodes = new List <int>() }; // Act var result = await _courseService.RegisterCourseAsync(input); // Assert Assert.IsAssignableFrom <List <string> >(result); }
public async Task Should_Not_Register_Course() { // Arrange _uowMock.Setup(p => p.StudentRepository.GetStudentWithRegisteredCourses(It.IsAny <int>())).Returns(Task.FromResult(_studentMock.Object)); _uowMock.Setup(p => p.CourseRepository.GetByIdAsync(It.IsAny <int>())).Returns(Task.FromResult(new Course())); _studentMock.Setup(p => p.RegisterForCourse(It.IsAny <Course>())).Returns(false); _uowMock.Setup(p => p.RegisteredCourseRepository.AddAsync(It.IsAny <RegisteredCourse>())); var input = new RegisterCourseInput() { StudentId = 1, SelectedCourseCodes = new List <int> { 1, 2 } }; // Act var result = await _courseService.RegisterCourseAsync(input); // Assert Assert.IsTrue(result.Any()); }
public async Task <RegisterCourseOutput> RegisterCourse(RegisterCourseInput args) { var result = await _courseService.RegisterCourse(args); return(result); }
public async Task <RegisterCourseOutput> RegisterCourse(RegisterCourseInput args) { var result = await _courseService.RegisterCourseAsync(args); return(new RegisterCourseOutput(!result.Any(), result, result.Any() ? null : "Congratulates")); }