public IActionResult EnrollStudent(EnrollStudentDto newStudent) { try { return(CreatedAtAction("EnrollStudent", _dbService.EnrollStudent(newStudent))); } catch (Exception e) { return(BadRequest("Exception: " + e.Message + "\n" + e.StackTrace)); } }
public async static Task Main(string[] args) { using var connection = new SqlConnection("Server=localhost;Database=School;User Id=sa;Password=Test123!;"); var repository = new DapperStudentRepository(connection); var hash = new MD5Hash(); var enroll = new EnrollStudent(repository, hash); var data = new EnrollStudentDto("11100011100", "Frank", "*****@*****.**", "123456"); await enroll.Execute(data); }
public async Task It_Should_Add_The_Student() { var studentRepository = new Mock <IStudentRepository>(); var hash = new Mock <IHash>(); hash.Setup(it => it.Make(It.IsAny <string>())).ReturnsAsync("hash"); var enroll = new EnrollStudent(studentRepository.Object, hash.Object); var data = new EnrollStudentDto("11100011100", "Frank", "*****@*****.**", "123456"); await enroll.Execute(data); studentRepository.Verify(it => it.Add(It.IsAny <Student>()), Times.Once); }
public EnrollmentDto EnrollStudent(EnrollStudentDto newStudent) { var enrollment = new EnrollmentDto(); using (SqlConnection connection = new SqlConnection(ConString)) using (SqlCommand command = new SqlCommand()) { command.Connection = connection; connection.Open(); var transaction = connection.BeginTransaction(); command.Transaction = transaction; SqlDataReader dataReader = null; try { command.CommandText = "select IdStudy " + "from studies " + "where name = @name "; command.Parameters.AddWithValue("name", newStudent.Studies); dataReader = command.ExecuteReader(); if (!dataReader.Read()) { throw new BadRequestException("Study doesn't exist: " + newStudent.Studies); } if (GetStudent(newStudent.IndexNumber) != null) { throw new BadRequestException("Index number already taken: " + newStudent.IndexNumber); } var idStudy = dataReader["IdStudy"].ToString(); dataReader.Close(); command.CommandText = "select * " + "from Enrollment " + "where IdStudy=@idStudy " + " and Semester=1 "; command.Parameters.AddWithValue("idStudy", idStudy); dataReader = command.ExecuteReader(); string idEnrollment; string startDate; if (dataReader.Read()) { idEnrollment = dataReader["IdEnrollment"].ToString(); startDate = dataReader["StartDate"].ToString(); } else { dataReader.Close(); command.CommandText = "select max(IdEnrollment) as MaxIdEnrollment " + "from Enrollment "; dataReader.Read(); idEnrollment = (int.Parse(dataReader["currentMax"].ToString()) + 1).ToString(); startDate = "2020-03-29"; dataReader.Close(); command.CommandText = "insert into Enrollment(IdEnrollment, Semester, IdStudy, StartDate) " + "values(@newId, @Semester, @IdStudy, @StartDate) "; command.Parameters.AddWithValue("newId", idEnrollment); command.Parameters.AddWithValue("IdStudy", idStudy); command.Parameters.AddWithValue("Semester", 1); command.Parameters.AddWithValue("StartDate", startDate); command.ExecuteNonQuery(); } dataReader.Close(); command.CommandText = "insert into Student (IndexNumber, FirstName, LastName, BirthDate, IdEnrollment) " + "values(@IndexNumber, @FirstName, @LastName, @BirthDate, @IdEnrollment) "; command.Parameters.AddWithValue("IndexNumber", newStudent.IndexNumber); command.Parameters.AddWithValue("FirstName", newStudent.FirstName); command.Parameters.AddWithValue("LastName", newStudent.LastName); command.Parameters.AddWithValue("BirthDate", newStudent.BirthDate); command.Parameters.AddWithValue("IdEnrollment", idEnrollment); command.ExecuteNonQuery(); enrollment = new EnrollmentDto() { IdEnrollment = idEnrollment, Semester = "1", IdStudy = idStudy, StartDate = startDate }; transaction.Commit(); } catch (Exception e) { if (dataReader != null) { dataReader.Close(); transaction.Rollback(); } throw e; } } return(enrollment); }
public EnrollStudentCommand(EnrollStudentDto enrollmentInfo) { _enrollmentInfo = enrollmentInfo; }
public async Task <IActionResult> EnrollStudent(EnrollStudentDto enrollmentInfo) { var newEnrollment = await _mediator.Send(new EnrollStudentCommand (enrollmentInfo)).ConfigureAwait(false); return(Created("", _mapper.Map <EnrollmentDetaiDto>(newEnrollment))); // TODO : Add Url }