Exemplo n.º 1
0
        private async Task DeleteImages(IeemdbDbContext ctx, DateTimeOffset timeToDelete, CancellationToken token)
        {
            var deleteImages =
                await ctx.Images.IgnoreQueryFilters()
                .Where(x => x.IsDeleted)
                .Where(x => x.UpdatedAt < timeToDelete)
                .ToListAsync(token);

            if (deleteImages.Count != 0)
            {
                ctx.Images.RemoveRange(deleteImages);
                logger.LogInformation("Removed  {Count} genres", deleteImages.Count);
            }
        }
Exemplo n.º 2
0
        private static async Task SeedGenres(IeemdbDbContext ctx, ITheMovieDb api, ILogger logger)
        {
            if (await ctx.Genres.AnyAsync())
            {
                return;
            }

            var genres = await api.GetGenres();

            var genreEntities = genres.genres.Select(x => new Genre {
                Name = x.name, TmdbId = x.id,
            }).ToList();

            ctx.Genres.AddRange(genreEntities);
        }
Exemplo n.º 3
0
 public AccountController(
     ILogger <AccountController> logger,
     IeemdbDbContext ctx,
     IPureMapper mapper,
     RoleManager <IeemdbRole> roleManager,
     UserManager <IeemdbUser> userManager,
     IOptions <JwtOptions> options,
     IEmailSender sender,
     RazorViewToStringRenderer renderer)
     : base(logger, ctx, mapper)
 {
     this.roleManager = roleManager;
     this.userManager = userManager;
     this.renderer    = renderer;
     emailSender      = sender;
     jwtOptions       = options.Value;
 }
Exemplo n.º 4
0
 public AdminController(
     ILogger <AdminController> logger,
     IeemdbDbContext ctx,
     IPureMapper mapper,
     IEnumerable <IHostedService> hostedServices)
     : base(logger, ctx, mapper)
 {
     deleteService = hostedServices.OfType <DeletedCleanupService>().SingleOrDefault()
                     ?? throw new InvalidOperationException(
                               $"Could not locate an instance of the service {nameof(DeletedCleanupService)}");
     movieSeedService = hostedServices.OfType <MovieSyncingService>().SingleOrDefault()
                        ?? throw new InvalidOperationException(
                                  $"Could not locate an instance of the service {nameof(MovieSyncingService)}");
     tokenCleanupService = hostedServices.OfType <RefreshTokenCleanupService>().SingleOrDefault()
                           ?? throw new InvalidOperationException(
                                     $"Could not locate an instance of the service {nameof(RefreshTokenCleanupService)}");
 }
Exemplo n.º 5
0
        private async Task DeleteWriter(IeemdbDbContext ctx, DateTimeOffset timeToDelete, CancellationToken token)
        {
            var deletedWriters =
                await ctx.People.IgnoreQueryFilters()
                .Where(p => p.KnownFor == DepartmentEnums.Writing)
                .Where(x => x.IsDeleted)
                .Where(x => x.UpdatedAt < timeToDelete)
                .ToListAsync(token);

            if (deletedWriters.Count != 0)
            {
                var movieWriters =
                    await ctx.MoviePeople.Where(x => deletedWriters.Contains(x.Person)).ToListAsync(token);

                ctx.MoviePeople.RemoveRange(movieWriters);
                ctx.People.RemoveRange(deletedWriters);
                logger.LogInformation("Removed  {Count} writers", deletedWriters.Count);
            }
        }
Exemplo n.º 6
0
        private async Task DeleteMovies(IeemdbDbContext ctx, DateTimeOffset timeToDelete, CancellationToken token)
        {
            var deletedMovies =
                await ctx.Movies.IgnoreQueryFilters()
                .Where(x => x.IsDeleted)
                .Where(x => x.UpdatedAt < timeToDelete)
                .ToListAsync(token);

            if (deletedMovies.Count != 0)
            {
                var movieActors = await ctx.MoviePeople
                                  .Where(x => deletedMovies.Contains(x.Movie) && x.Person.KnownFor == DepartmentEnums.Acting)
                                  .ToListAsync(token);

                var movieDirectors = await ctx.MoviePeople
                                     .Where(x => deletedMovies.Contains(x.Movie) && x.Person.KnownFor == DepartmentEnums.Directing)
                                     .ToListAsync(token);

                var movieWriters = await ctx.MoviePeople
                                   .Where(x => deletedMovies.Contains(x.Movie) && x.Person.KnownFor == DepartmentEnums.Writing)
                                   .ToListAsync(token);

                var movieRatings = await ctx.Ratings.Where(x => deletedMovies.Contains(x.Movie)).ToListAsync(token);

                var movieGenres = await ctx.MovieGenres.Where(x => deletedMovies.Contains(x.Movie)).ToListAsync(token);

                var movieCountries = await ctx.MovieCountries.Where(x => deletedMovies.Contains(x.Movie)).ToListAsync(token);

                var movieScreenshots = await ctx.Images.Where(x => deletedMovies.Contains(x.Movie)).ToListAsync(token);

                ctx.MovieCountries.RemoveRange(movieCountries);
                ctx.Ratings.RemoveRange(movieRatings);
                ctx.MoviePeople.RemoveRange(movieActors);
                ctx.MoviePeople.RemoveRange(movieDirectors);
                ctx.MoviePeople.RemoveRange(movieWriters);
                ctx.MovieGenres.RemoveRange(movieGenres);
                ctx.Images.RemoveRange(movieScreenshots);

                logger.LogInformation("Removed  {Count} movies", deletedMovies.Count);
                ctx.Movies.RemoveRange(deletedMovies);
            }
        }
Exemplo n.º 7
0
        private static async Task SeedCountries(IeemdbDbContext ctx, ITheMovieDb api, ILogger logger)
        {
            if (await ctx.Countries.AnyAsync())
            {
                return;
            }

            try
            {
                var countries = await api.GetCountries();

                var countryEntities = countries.Select(x => new Country {
                    Iso = x.iso_3166_1, Name = x.english_name
                })
                                      .ToList();
                ctx.Countries.AddRange(countryEntities);
            }
            catch (ApiException e)
            {
                logger.LogCritical(e, "Unhandled exception caught: {Message}", e.Message);
            }
        }
Exemplo n.º 8
0
 public RatingController(ILogger <RatingController> logger, IeemdbDbContext ctx, IPureMapper mapper,
                         UserManager <IeemdbUser> userManager)
     : base(logger, ctx, mapper)
 {
     this.userManager = userManager;
 }
Exemplo n.º 9
0
 protected BaseController(ILogger <T> logger, IeemdbDbContext ctx, IPureMapper mapper)
 {
     Logger  = logger;
     Context = ctx;
     Mapper  = mapper;
 }
Exemplo n.º 10
0
 public DirectorController(ILogger <DirectorController> logger, IeemdbDbContext ctx, IPureMapper mapper)
     : base(logger, ctx, mapper)
 {
 }
Exemplo n.º 11
0
 public GenreController(ILogger <GenreController> logger, IeemdbDbContext ctx, IPureMapper mapper)
     : base(logger, ctx, mapper)
 {
 }
Exemplo n.º 12
0
 public CountryController(ILogger <CountryController> logger, IeemdbDbContext ctx, IPureMapper mapper)
     : base(logger, ctx, mapper)
 {
 }
Exemplo n.º 13
0
 public WriterController(ILogger <WriterController> logger, IeemdbDbContext ctx, IPureMapper mapper)
     : base(logger, ctx, mapper)
 {
 }
Exemplo n.º 14
0
 public FavoriteController(ILogger <MovieController> logger, IeemdbDbContext ctx, IPureMapper mapper,
                           UserManager <IeemdbUser> userManager)
     : base(logger, ctx, mapper)
 {
     this.userManager = userManager;
 }