public static async Task BackupDatabase(IAIDungeonPromptsDbContext dbContext, BackupDbContext backupContext, CancellationToken cancellationToken = default) { await CleanBackup(backupContext, cancellationToken); List <int>?nonDrafts = await dbContext.NonDraftPrompts.Select(e => e.Id).ToListAsync(cancellationToken); var page = 0; const int pageSize = 100; var totalCount = await dbContext.Prompts.CountAsync(cancellationToken); while (page * pageSize < totalCount) { List <Prompt>?allPrompts = await dbContext .Prompts .Include(e => e.PromptTags) .ThenInclude(e => e.Tag) .Include(e => e.WorldInfos) .OrderBy(e => e.Id) .Skip(page * pageSize) .Take(pageSize) .AsNoTracking() .ToListAsync(cancellationToken); var backups = allPrompts.Where(e => nonDrafts.Contains(e.Id)) .Select(prompt => CreateBackupPrompt(prompt)).ToList(); backupContext.Prompts.AddRange(backups); await backupContext.SaveChangesAsync(cancellationToken); page++; } }
public GetReportsQueryHandler(IAIDungeonPromptsDbContext dbContext) { _dbContext = dbContext; }
public CreatePromptCommandHandler(IAIDungeonPromptsDbContext dbContext, ICurrentUserService currentUserService) { _dbContext = dbContext; _currentUserService = currentUserService; }
public ClearReportCommandHandler(IAIDungeonPromptsDbContext dbContext) { _dbContext = dbContext; }
public GetUserQueryHandler(IAIDungeonPromptsDbContext dbContext) { _dbContext = dbContext; }
public RandomPromptQueryHandler(IAIDungeonPromptsDbContext dbContext) { _dbContext = dbContext; }
public GetPromptQueryHandler(IAIDungeonPromptsDbContext dbContext, ICurrentUserService userService) { _dbContext = dbContext; _userService = userService; }
public CreateTransientUserCommandHandler(IAIDungeonPromptsDbContext dbContext) { _dbContext = dbContext; }
public GetAllTagsQueryHandler(IAIDungeonPromptsDbContext dbContext) { _dbContext = dbContext; }
public LogInQueryHandler(IAIDungeonPromptsDbContext dbContext) { _dbContext = dbContext; }
public GetServerFlagQueryHandler(IAIDungeonPromptsDbContext dbContext) { _dbContext = dbContext; }
public SimilarPromptQueryHandler(IAIDungeonPromptsDbContext dbContext) { _dbContext = dbContext; }
public UpdateUserCommandHandler(IAIDungeonPromptsDbContext dbContext) { _dbContext = dbContext ?? throw new ArgumentNullException(nameof(dbContext)); }