コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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"));
        }
コード例 #6
0
        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));
        }