Table of Contents

Class OnboardingQuizAttemptRepository

Namespace
Builvero.Infrastructure.Repositories
Assembly
Builvero.Infrastructure.dll

Repository implementation for onboarding quiz attempt data access operations using Entity Framework Core.

public class OnboardingQuizAttemptRepository : IOnboardingQuizAttemptRepository
Inheritance
OnboardingQuizAttemptRepository
Implements
Inherited Members

Remarks

Onboarding quiz attempts track user progress through the TeamCandidate onboarding quiz. Users can have multiple attempts, but only one active (unsubmitted) attempt at a time.

Constructors

OnboardingQuizAttemptRepository(ApplicationDbContext)

Initializes a new instance of the OnboardingQuizAttemptRepository class.

public OnboardingQuizAttemptRepository(ApplicationDbContext context)

Parameters

context ApplicationDbContext

The Entity Framework database context for data access.

Methods

CreateAsync(OnboardingQuizAttempt, CancellationToken)

Creates a new onboarding quiz attempt in the database.

public Task<OnboardingQuizAttempt> CreateAsync(OnboardingQuizAttempt attempt, CancellationToken cancellationToken = default)

Parameters

attempt OnboardingQuizAttempt

The quiz attempt entity to create.

cancellationToken CancellationToken

Cancellation token to cancel the operation.

Returns

Task<OnboardingQuizAttempt>

The created quiz attempt entity with its generated ID.

GetActiveAttemptByUserIdAsync(Guid, CancellationToken)

Retrieves the active (unsubmitted) quiz attempt for a user.

public Task<OnboardingQuizAttempt?> GetActiveAttemptByUserIdAsync(Guid userId, CancellationToken cancellationToken = default)

Parameters

userId Guid

The unique identifier of the user.

cancellationToken CancellationToken

Cancellation token to cancel the operation.

Returns

Task<OnboardingQuizAttempt>

The most recent active attempt if found; otherwise, null.

GetByIdAsync(Guid, CancellationToken)

Retrieves an onboarding quiz attempt by its unique identifier.

public Task<OnboardingQuizAttempt?> GetByIdAsync(Guid id, CancellationToken cancellationToken = default)

Parameters

id Guid

The unique identifier of the attempt to retrieve.

cancellationToken CancellationToken

Cancellation token to cancel the operation.

Returns

Task<OnboardingQuizAttempt>

The attempt with User loaded, or null if not found.

InvalidateActiveAttemptsAsync(Guid, CancellationToken)

Invalidates all active (unsubmitted) quiz attempts for a user by deleting them.

public Task InvalidateActiveAttemptsAsync(Guid userId, CancellationToken cancellationToken = default)

Parameters

userId Guid

The unique identifier of the user.

cancellationToken CancellationToken

Cancellation token to cancel the operation.

Returns

Task
Repository implementation for onboarding quiz attempt data access operations using Entity Framework Core.

Remarks

This method is called when a user starts a new quiz attempt to ensure only one active attempt exists. All unsubmitted attempts are deleted to prevent conflicts.

UpdateAsync(OnboardingQuizAttempt, CancellationToken)

Updates an existing onboarding quiz attempt in the database.

public Task<OnboardingQuizAttempt> UpdateAsync(OnboardingQuizAttempt attempt, CancellationToken cancellationToken = default)

Parameters

attempt OnboardingQuizAttempt

The quiz attempt entity to update.

cancellationToken CancellationToken

Cancellation token to cancel the operation.

Returns

Task<OnboardingQuizAttempt>

The updated quiz attempt entity.