コード例 #1
0
        public async Task <IActionResult> Update([FromBody] UpdateStudentDto model)
        {
            if (!ModelState.IsValid)
            {
                return(CustomResponse(ModelState));
            }
            try
            {
                var entity = await _uow.StudentRepository.GetByIdAsync(model.Id, track : true);

                if (entity is null)
                {
                    NotifyError("Student not found!");
                    return(CustomResponse());
                }

                if (!string.IsNullOrWhiteSpace(model.Name))
                {
                    entity.AlterName(model.Name);
                }

                if (model.BirthDate.HasValue)
                {
                    entity.AlterBirthDate(model.BirthDate.Value);
                }

                await _uow.CommitAsync();

                return(CustomResponse(_mapper.Map <StudentDto>(entity)));
            }
            catch (Exception ex)
            {
                return(CustomResponse(ex));
            }
        }
コード例 #2
0
        public async Task <bool> UpdateStudent(Guid id, UpdateStudentDto model, string fields)
        {
            var student = await _service.Query(id, false);

            student.UpdateTime = DateTime.Now;
            return(await _service.Update(CommonClass.SetModelValue(model, student, fields)));
        }
コード例 #3
0
        public async Task <IActionResult> UpdateStudent([FromBody] UpdateStudentModel updateStudentModel)
        {
            UpdateStudentDto updateStudentDto = _mapper.Map <UpdateStudentDto>(updateStudentModel);
            await _studentService.UpdateStudentAsync(updateStudentDto);

            return(Ok());
        }
コード例 #4
0
        public async Task <ActionResult> Edit(int id, CreateStudentViewModel studentViewModel)
        {
            var temp = await _studentService.FindById(id);

            var existingCode = await _studentService.FindByCode(studentViewModel.Account);

            if (existingCode == null || existingCode.Account == temp.Account)
            {
                var student = new UpdateStudentDto
                {
                    Account       = studentViewModel.Account,
                    Email         = studentViewModel.Email,
                    Campus        = studentViewModel.Campus,
                    FirstName     = studentViewModel.FirstName,
                    SecondName    = studentViewModel.SecondName,
                    FirstSurname  = studentViewModel.FirstSurname,
                    SecondSurname = studentViewModel.SecondSurname,
                    Careers       = studentViewModel.Careers,
                    Settlement    = studentViewModel.Settlement,
                    Id            = id
                };
                await _studentService.Update(id, student);

                return(Ok());
            }
            else
            {
                return(BadRequest("Ya existe un Estudiante con este numero de Cuenta"));
            }
        }
コード例 #5
0
        public async Task UpdateStudentAsync(UpdateStudentDto updateStudentDto)
        {
            try
            {
                if (updateStudentDto == null)
                {
                    throw new ArgumentNullException(nameof(updateStudentDto));
                }

                Student studenteToBeUpdated = await _unitOfWork.Repository <Student>().GetEntityByIdAsync(updateStudentDto.StudentId);

                if (studenteToBeUpdated != null)
                {
                    studenteToBeUpdated.StudentName    = updateStudentDto.StudentName;
                    studenteToBeUpdated.CountryId      = updateStudentDto.CountryId;
                    studenteToBeUpdated.DateOfBirth    = updateStudentDto.DateOfBirth;
                    studenteToBeUpdated.Email          = updateStudentDto.Email;
                    studenteToBeUpdated.PhoneNumber    = updateStudentDto.PhoneNumber;
                    studenteToBeUpdated.SpokenLanguage = updateStudentDto.SpokenLanguage;

                    _unitOfWork.Repository <Student>().UpdateEntity(studenteToBeUpdated);
                    await _unitOfWork.SaveChangesAsync();
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #6
0
ファイル: StudentService.cs プロジェクト: hend-isleem/Q-Space
        public void Update(UpdateStudentDto dto)
        {
            var student = _DB.Students.Find(dto.Id);

            student.Score = dto.Score;
            _DB.Students.Update(student);
            _DB.SaveChanges();
        }
コード例 #7
0
        public async Task <IActionResult> UpdateStudent(
            int id, [FromBody] UpdateStudentDto student)
        {
            var command = _mapper.Map <EditStudentInfoCommand>(student);

            command.StudentId = id;
            return(FromResult(await _messages.DispatchAsync(command)));
        }
コード例 #8
0
        public async Task <Result <StudentDto> > UpdateStudentAsync(long studentId, UpdateStudentDto studentModel)
        {
            try
            {
                var foundStudent = await _unitOfWork.StudentRepository.GetByIdAsync(studentId);

                if (foundStudent == null)
                {
                    return(Result <StudentDto> .Error(ErrorCode.NotFound, "Student not found"));
                }

                var isEmailChangableTo = await _accountService
                                         .IsEmailChangableToAsync((long)foundStudent.AccountId, studentModel.Email);

                if (!isEmailChangableTo)
                {
                    return(Result <StudentDto> .Error(ErrorCode.ValidationError,
                                                      "Email is already taken!"));
                }

                foundStudent.Account.Email     = studentModel.Email ?? foundStudent.Account.Email;
                foundStudent.Account.FirstName = studentModel.FirstName ?? foundStudent.Account.FirstName;
                foundStudent.Account.LastName  = studentModel.LastName ?? foundStudent.Account.LastName;

                if (studentModel.StudentGroupIds != null)
                {
                    var currentStudentGroupsOfStudent = foundStudent.StudentsOfStudentGroups;
                    var newStudentsOfStudentGroup     = new List <StudentOfStudentGroup>();

                    foreach (var newStudentGroupId in studentModel.StudentGroupIds)
                    {
                        newStudentsOfStudentGroup.Add(new StudentOfStudentGroup
                        {
                            StudentGroupId = newStudentGroupId,
                            StudentId      = foundStudent.Id
                        });
                    }

                    _unitOfWork.StudentGroupRepository.UpdateManyToMany(currentStudentGroupsOfStudent, newStudentsOfStudentGroup);
                }

                await _unitOfWork.CommitAsync();

                return(Result <StudentDto> .Success(_mapper.Map <StudentDto>(foundStudent)));
            }
            catch
            {
                _unitOfWork.Rollback();

                return(Result <StudentDto> .Error(ErrorCode.InternalServerError,
                                                  "Cannot update student."));
            }
        }
コード例 #9
0
        public async Task <ActionResult> UpdateStudent([FromRoute] Guid id, [FromBody] UpdateStudentDto updateStudentDto, CancellationToken ct)
        {
            if (!await _studentService.ExistsAsync(id, ct))
            {
                return(NotFound());
            }

            var studentToReturn = await _studentService.UpdateStudentAsync(id, updateStudentDto, ct);

            if (studentToReturn == null)
            {
                return(BadRequest());
            }

            return(Ok(studentToReturn));
        }
コード例 #10
0
        public async Task <StudentDto> PartialUpdateStudentAsync(Guid id, UpdateStudentDto updateStudentDto, CancellationToken ct)
        {
            var studentEntity = await _uow.Students.GetAsync(id, ct);

            _mapper.Map(updateStudentDto, studentEntity);

            await _uow.Students.UpdateAsync(studentEntity, id, ct, studentEntity.RowVersion);

            await _uow.SaveChangesAsync(ct);

            studentEntity = await _uow.Students.GetAsync(id, ct);

            var studentDto = _mapper.Map <StudentDto>(studentEntity);

            return(studentDto);
        }
コード例 #11
0
        public async Task <StudentDto> UpdateStudentAsync(Guid id, UpdateStudentDto updateStudentDto, CancellationToken ct)
        {
            StudentDto studentDto = null;

            var updatedEntity = _mapper.Map <Student>(updateStudentDto);

            updatedEntity.Id = id;
            await _uow.Students.UpdateAsync(updatedEntity, id, ct, updatedEntity.RowVersion);

            await _uow.SaveChangesAsync(ct);

            var studentEntity = await _uow.Students.GetAsync(id, ct);

            studentDto = _mapper.Map <StudentDto>(studentEntity);

            return(studentDto);
        }
コード例 #12
0
        public async Task <IActionResult> UpdateStudent(Guid id, [FromBody] UpdateStudentDto model,
                                                        [FromQuery] string fields)
        {
            try
            {
                if (!await _manager.UpdateStudent(id, model, fields))
                {
                    return(Ok(new JsonMessageResult("修改失败!", 0, null)));
                }

                return(NoContent());
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);
                return(Ok(new JsonMessageResult(e.Message, 0, null)));
            }
        }
コード例 #13
0
        public async Task <ActionResult <StudentDto> > Update([FromBody] UpdateStudentDto updateStudent)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var UpdateStudent   = _mapper.Map <UpdateStudentDto, Student>(updateStudent);
            var StudentToUpdate = await _StudentService.GetStudentById(updateStudent.Id);

            if (StudentToUpdate == null)
            {
                return(NotFound());
            }

            await _StudentService.UpdateStudent(StudentToUpdate, UpdateStudent);

            var updatedStudent = await _StudentService.GetStudentById(updateStudent.Id);

            var result = _mapper.Map <Student, StudentDto>(updatedStudent);

            return(Ok(result));
        }
コード例 #14
0
        public async Task <ActionResult> UpdateStudent([FromBody] UpdateStudentDto studentDto)
        {
            await _studentService.UpdateStudent(studentDto);

            return(Ok());
        }
コード例 #15
0
        public async Task <IActionResult> UpdateStudent(long id, UpdateStudentDto data)
        {
            var updatedStudent = await _studentService.UpdateStudentAsync(id, data, Request.Cookies["accessToken"]);

            return(RedirectToAction("AllStudents", "Students"));
        }
コード例 #16
0
        public async Task <ActionResult> PutStudent(long studentId, UpdateStudentDto studentModel)
        {
            var updatedStudent = await _studentService.UpdateStudentAsync(studentId, studentModel);

            return(updatedStudent.ToActionResult());
        }
コード例 #17
0
        public async Task StudentUpdate()
        {
            //Arrange
            var existingEmail = "*****@*****.**";

            var emptyUpdateStudentDto = new UpdateStudentDto();

            var successUpdateStudentDto = new UpdateStudentDto()
            {
                Email     = "*****@*****.**",
                FirstName = "FirstNameUpdated",
                LastName  = "LastNameUpdated"
            };

            var student = new Student()
            {
                Id        = 5,
                AccountId = 10,
                Account   = new Account()
                {
                    Id    = 10,
                    Email = "*****@*****.**"
                }
            };

            var alreadyExistingEmailUpdateStudentDto = new UpdateStudentDto()
            {
                Email     = existingEmail,
                FirstName = "updateTest",
                LastName  = "updateTest"
            };

            var alreadyExistingEmailStudent = new Student()
            {
                Id        = 6,
                AccountId = 11,
                Account   = new Account()
                {
                    Id    = 11,
                    Email = existingEmail
                }
            };

            _accountServiceMock.Setup(x => x.IsEmailChangableToAsync(
                                          (long)student.AccountId, successUpdateStudentDto.Email))
            .ReturnsAsync(true);

            _accountServiceMock.Setup(x => x.IsEmailChangableToAsync(
                                          (long)alreadyExistingEmailStudent.AccountId, existingEmail))
            .ReturnsAsync(false);

            var studentRepositoryMock = new Mock <IStudentRepository>();

            studentRepositoryMock.Setup(x => x.GetByIdAsync(5))
            .ReturnsAsync(student);

            studentRepositoryMock.Setup(x => x.GetByIdAsync(6))
            .ReturnsAsync(alreadyExistingEmailStudent);

            _unitOfWorkMock.Setup(x => x.StudentRepository).Returns(studentRepositoryMock.Object);

            var studentService = new StudentService(
                _accountServiceMock.Object,
                _unitOfWorkMock.Object,
                _mapper,
                _notificationServiceMock.Object
                );

            //Act
            var nonExistingId = await studentService
                                .UpdateStudentAsync(0, emptyUpdateStudentDto);

            var successResult = await studentService
                                .UpdateStudentAsync(5, successUpdateStudentDto);

            var alreadyExistingEmailResult = await studentService
                                             .UpdateStudentAsync(6, alreadyExistingEmailUpdateStudentDto);

            //Assert
            Assert.Equal(ErrorCode.NotFound, nonExistingId.Error.Code);

            Assert.NotNull(successResult.Data);
            Assert.Equal(successUpdateStudentDto.Email, successResult.Data.Email);
            Assert.Equal(successUpdateStudentDto.FirstName, successResult.Data.FirstName);
            Assert.Equal(successUpdateStudentDto.LastName, successResult.Data.LastName);

            Assert.Equal(ErrorCode.ValidationError, alreadyExistingEmailResult.Error.Code);
        }
コード例 #18
0
 public IActionResult Update([FromBody] UpdateStudentDto dto)
 {
     _service.Update(dto);
     return(Ok(GetResponse()));
 }
コード例 #19
0
        public async Task <UpdateStudentDto> UpdateStudentAsync(long id, UpdateStudentDto UpdateDto, string accessToken)
        {
            var updatedStudent = await _apiUtil.PutAsync($"{_config.Value.Urls.Api.Https}/api/students/{id}", UpdateDto, accessToken);

            return(updatedStudent);
        }