Exemple #1
0
 public IActionResult EnrollStudent(EnrollStudentDto newStudent)
 {
     try
     {
         return(CreatedAtAction("EnrollStudent", _dbService.EnrollStudent(newStudent)));
     }
     catch (Exception e)
     {
         return(BadRequest("Exception: " + e.Message + "\n" + e.StackTrace));
     }
 }
Exemple #2
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
 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
        }