public async Task AddVideoToFavoriteAsync(string videoId, string userId)
        {
            var favoriteVideo = this.favoritesVideosRepository.AllWithDeleted()
                                .FirstOrDefault(v => v.VideoId == videoId && v.UserId == userId);

            if (favoriteVideo != null)
            {
                if (favoriteVideo.IsDeleted == true)
                {
                    favoriteVideo.IsDeleted = false;
                    favoriteVideo.DeletedOn = null;
                }

                favoriteVideo.CreatedOn = DateTime.UtcNow;
            }
            else
            {
                favoriteVideo = new FavoriteVideo
                {
                    VideoId = videoId,
                    UserId  = userId,
                };

                await this.favoritesVideosRepository.AddAsync(favoriteVideo);
            }

            await this.favoritesVideosRepository.SaveChangesAsync();
        }
        public FavoritesServiceTest()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString());

            this.favoritesRepository = new EfDeletableEntityRepository <FavoriteVideo>(new ApplicationDbContext(options.Options));

            this.service = new FavoritesService(this.favoritesRepository);

            this.favoriteVideo = new FavoriteVideo
            {
                Id      = 1,
                UserId  = "user1",
                VideoId = "video1",
            };
        }