public async Task <ActionResult <LecturerResource> > UpdateLecturer(int id, [FromBody] SaveLecturerResource saveLecturerResource) { var validator = new SaveLecturerResourceValidator(); var validationResult = await validator.ValidateAsync(saveLecturerResource); var requestIsInvalid = id == 0 || !validationResult.IsValid; if (requestIsInvalid) { _logger.LogError(DateTime.Now + $"\nUpdating lecturer with {id} id failed, validation isn't valid " + validationResult.Errors.ToString()); return(BadRequest(validationResult.Errors)); } var lecturerToBeUpdate = await _lecturerService.GetLecturerById(id); var lecturer = _mapper.Map <SaveLecturerResource, Lecturer>(saveLecturerResource); lecturer.Id = id; await _lecturerService.UpdateLecturer(lecturer); var updatedLecturer = await _lecturerService.GetLecturerById(id); var updatedLecturerResource = _mapper.Map <Lecturer, LecturerResource>(updatedLecturer); return(Ok(updatedLecturerResource)); }
public async Task <IActionResult> UpdateLecturer(int id, [FromBody] SaveLecturerResource lecturerResource) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var lecturer = await repository.GetLecturer(id); if (lecturer == null) { return(NotFound()); } mapper.Map <SaveLecturerResource, Lecturer>(lecturerResource, lecturer); var nameExist = await repository.EditLecturerExist(lecturer); if (nameExist != null) { return(Conflict("Lecturer name already exists")); } await unitOfWork.CompleteAsync(); lecturer = await repository.GetLecturer(lecturer.Id); var result = mapper.Map <Lecturer, LecturerResource>(lecturer); return(Ok(result)); }
public async Task UpdateLecturer_IdLowerThanOneValidationError_Test(int id) { // Arrange var newLecturer = new SaveLecturerResource { Name = "Update" }; // Act var result = await Controller.UpdateLecturer(id, newLecturer); var badRequest = result.Result as BadRequestObjectResult; // Assert Assert.That(badRequest is BadRequestObjectResult); }
public async Task CreateLecturer_EmailValidationError_Test() { // Arrange var newLecturer = new SaveLecturerResource { Name = "New", Email = "Q", Mobile = "+7 (931) 945-23-45" }; // Act var result = await Controller.CreateLecturer(newLecturer); var badRequest = result.Result as BadRequestObjectResult; // Assert Assert.That(badRequest is BadRequestObjectResult); }
public async Task UpdateLecturer_NormalConditions_Test(int id) { // Arrange var newLecturer = new SaveLecturerResource { Name = "Update", Email = "*****@*****.**", Mobile = "+7 (931) 945-23-45" }; // Act await Controller.UpdateLecturer(id, newLecturer); var result = await Controller.GetAllLecturers(); var okObject = result.Result as OkObjectResult; var collection = okObject.Value as IEnumerable <LecturerResource>; // Assert Service.Verify(x => x.UpdateLecturer(It.IsAny <Lecturer>()), Times.Once); Assert.That(collection.ElementAt(0).Name, Is.EqualTo("Update")); }
public async Task <ActionResult <LecturerResource> > CreateLecturer([FromBody] SaveLecturerResource saveLecturerResource) { var validator = new SaveLecturerResourceValidator(); var validationResult = await validator.ValidateAsync(saveLecturerResource); if (!validationResult.IsValid) { _logger.LogError(DateTime.Now + $"\nCreating lecturer failed, validation isn't valid " + validationResult.Errors.ToString()); return(BadRequest(validationResult.Errors)); } var lecturerToCreate = _mapper.Map <SaveLecturerResource, Lecturer>(saveLecturerResource); var result = await _lecturerService.CreateLecturer(lecturerToCreate); var createdLecturer = _mapper.Map <Lecturer, LecturerResource>(result); return(Ok(result)); }