public async Task <IResult> Handle(TMDBSyncMovieCommand request, CancellationToken cancellationToken) { var lastSyncTMDBMovieId = GetStartMovieId(_movieRepository.Query().OrderByDescending(o => o.TMDBId).FirstOrDefault()); int dbMovieCount = await _movieRepository.GetCountAsync(); if (IsMovieReachedMaximum(dbMovieCount, request.MaxMovieCount)) { _logger.Error("Senkronize Edilecek Film Sayısı Maximum Değere Ulaştı"); return(new ErrorResult("Senkronize Edilecek Film Sayısı Maximum Değere Ulaştı")); } if (dbMovieCount + request.OneTimeSyncCount > request.MaxMovieCount) { request.OneTimeSyncCount = request.MaxMovieCount - dbMovieCount; } int savedCount = 0; while (savedCount != request.OneTimeSyncCount) { var tmdbMovie = await _tmdbService.GetMovie(lastSyncTMDBMovieId + 1 + savedCount); if (tmdbMovie != null) { var movie = _mapper.Map <Movie>(tmdbMovie); _movieRepository.Add(movie); savedCount++; } } await _movieRepository.SaveChangesAsync(); return(new SuccessResult(Messages.Added)); }