예제 #1
0
        public void Execute(CreateActorDto request)
        {
            _validator.ValidateAndThrow(request);
            var actor = new Actor
            {
                Id               = request.Id,
                FirstName        = request.FirstName,
                LastName         = request.LastName,
                FirstAndLastName = request.FullName,
                BirthPlace       = request.BirthPlace,
                Age              = request.Age,
                Birth            = request.Birth,
                Oscars           = request.Oscars,
                MoviesNumber     = request.MovieNumber
            };

            //add into n:n
            foreach (var item in request.ActorMovies)
            {
                actor.ActorMovies.Add(new ActorMovie
                {
                    MovieId             = item.MovieId,
                    ActorId             = actor.Id,
                    ActorCharachterName = item.ActorCharacterName,
                });
            }

            _context.Actors.Add(actor);
            _context.SaveChanges();
        }
예제 #2
0
 public static APActor ToAPActorEntity(this CreateActorDto dto)
 {
     return(new APActor
     {
         APActorAcronymName = dto.AcronymName,
         APActorAddress = dto.Address,
         APActorFax = dto.Fax,
         APActorHouseNumber = dto.HouseNumber,
         APActorIdentityCard = dto.IdentityCard,
         APActorName = dto.Name,
         APActorPhone = dto.Phone,
         APActorTaxNumber = dto.TaxNumber,
         FK_GECommuneID = dto.CommuneID,
         FK_GEDistrictID = dto.DistrictID,
         FK_GEStateProvinceID = dto.StateProvinceID,
         APActorRepresentative = dto.Representative,
         APActorWebsite = dto.Website,
         APActorStatus = UserStatus.Active,
         GECommuneCode = dto.CommuneCode,
         GEDistrictCode = dto.DistrictCode,
         GEStateProvinceCode = dto.StateProvinceCode,
         APActorEmail = dto.Email,
         APActorAvatar = dto.Avartar,
         APActorCode = dto.ActorTypeCode,
         FK_APActorTypeID = dto.ActorTypeID,
         APActorContactName = dto.ContactName,
         APActorContactPhone = dto.ContactPhone,
         APActorNote = dto.Note
     });
 }
예제 #3
0
        public IActionResult Create(CreateActorDto createActorDto)
        {
            try
            {
                _service.Create(createActorDto);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(Ok());
        }
        public async Task <ActionResult <ActorDto> > CreateActor(CreateActorDto request)
        {
            var newActor = new Actor()
            {
                FirstName = request.FirstName,
                LastName  = request.LastName,
                BirthDate = request.BirthDate
            };
            await _actorRepository.AddAsync(newActor);

            await _actorRepository.SaveAsync();

            return(CreatedAtAction(nameof(GetActor), new { actorId = newActor.Id }, newActor.ToDto()));
        }
예제 #5
0
        public async Task <ActorDto> CreateActorAsync(CreateActorDto dto)
        {
            var actorToCreate = dto.ToAPActorEntity();

            var actor = await _unitOfWork.GetRepository <APActor>().InsertAsync(actorToCreate);

            if (!dto.ActorRoles.IsNullOrEmpty())
            {
                var actorRoles = dto.ActorRoles.ConvertArray(
                    x => new APActorRole
                {
                    FK_APActorID = actor.Id,
                    FK_APRoleID  = x
                });

                await _unitOfWork.GetRepository <APActorRole>().BulkInsertAsync(actorRoles);
            }

            await _unitOfWork.CompleteAsync();

            return(await GetActorAsync(actor.Id));
        }
예제 #6
0
        public async Task AddActor_ReturnsCreatedResponse(string firstName, string lastName)
        {
            //Arrange
            var mockMovieRepository     = new Mock <IRepository <Movie> >();
            var mockActorRepository     = new Mock <IRepository <Actor> >();
            var mockMovieRoleRepository = new Mock <IRepository <MovieRole> >();

            //Arrange
            var createActorRequest = new CreateActorDto()
            {
                FirstName = firstName, LastName = lastName
            };

            //mockRespository.Setup(x =>
            //    x.AddActor(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<DateTime>())).Returns(Task.FromResult(resultActor));

            //Act
            var controller = new ActorsController(mockActorRepository.Object, mockMovieRepository.Object, mockMovieRoleRepository.Object);

            var result = await controller.CreateActor(createActorRequest);

            Assert.IsInstanceOfType(result.Result, typeof(CreatedAtActionResult));
        }
        public async Task AddActor_AddAndSaveWasCalled_ReturnsCreatedResponse(string firstName, string lastName, int year, int month, int day)
        {
            //Arrange
            var request = new CreateActorDto()
            {
                FirstName = firstName, LastName = lastName, BirthDate = new DateTime(year, month, day)
            };

            //Act
            ActionResult <ActorDto> result = await _controller.CreateActor(request);

            //Assert
            _mockActorRepository.Verify(x => x.AddAsync(It.Is <Actor>(a => a.FirstName == request.FirstName &&
                                                                      a.LastName == request.LastName &&
                                                                      a.BirthDate == request.BirthDate)), Times.Once);
            _mockActorRepository.Verify(x => x.SaveAsync(), Times.Once);

            CreatedAtActionResult createdAtActionResult = Assert.IsType <CreatedAtActionResult>(result.Result);
            ActorDto actorDto = Assert.IsType <ActorDto>(createdAtActionResult.Value);

            Assert.Equal(request.FirstName, actorDto.FirstName);
            Assert.Equal(request.LastName, actorDto.LastName);
            Assert.Equal(request.BirthDate, actorDto.BirthDate);
        }
예제 #8
0
        public async Task <IActionResult> Create([FromBody] CreateActorDto dto)
        {
            var result = await _actorService.CreateActorAsync(dto);

            return(Success(result));
        }
예제 #9
0
 public IActionResult Post([FromBody] CreateActorDto dto, [FromServices] ICreateActorCommand command)
 {
     _executor.ExecuteCommand(command, dto);
     return(StatusCode(StatusCodes.Status201Created));
 }