feat: repositories
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
using GamificationService.Database.GenericRepository;
|
||||
using GamificationService.Models.Database;
|
||||
using Microsoft.EntityFrameworkCore.Storage;
|
||||
|
||||
namespace GamificationService.Database.UnitOfWork;
|
||||
@@ -8,6 +10,22 @@ public class UnitOfWork : IUnitOfWork
|
||||
private readonly ApplicationContext _context;
|
||||
private IDbContextTransaction? _transaction;
|
||||
|
||||
// Repository fields
|
||||
private IGenericRepository<Rank>? _rankRepository;
|
||||
private IGenericRepository<Skill>? _skillRepository;
|
||||
private IGenericRepository<Player>? _playerRepository;
|
||||
private IGenericRepository<MissionCategory>? _missionCategoryRepository;
|
||||
private IGenericRepository<Mission>? _missionRepository;
|
||||
private IGenericRepository<MissionRankRule>? _missionRankRuleRepository;
|
||||
private IGenericRepository<MissionSkillReward>? _missionSkillRewardRepository;
|
||||
private IGenericRepository<MissionItemReward>? _missionItemRewardRepository;
|
||||
private IGenericRepository<RankMissionRule>? _rankMissionRuleRepository;
|
||||
private IGenericRepository<RankSkillRule>? _rankSkillRuleRepository;
|
||||
private IGenericRepository<PlayerSkill>? _playerSkillRepository;
|
||||
private IGenericRepository<PlayerMission>? _playerMissionRepository;
|
||||
private IGenericRepository<Dialogue>? _dialogueRepository;
|
||||
private IGenericRepository<DialogueMessage>? _dialogueMessageRepository;
|
||||
private IGenericRepository<DialogueMessageResponseOption>? _dialogueMessageResponseOptionRepository;
|
||||
#endregion
|
||||
|
||||
public UnitOfWork(ApplicationContext context)
|
||||
@@ -16,6 +34,50 @@ public class UnitOfWork : IUnitOfWork
|
||||
}
|
||||
|
||||
#region Repositories
|
||||
public IGenericRepository<Rank> Ranks =>
|
||||
_rankRepository ??= new GenericRepository<Rank>(_context);
|
||||
|
||||
public IGenericRepository<Skill> Skills =>
|
||||
_skillRepository ??= new GenericRepository<Skill>(_context);
|
||||
|
||||
public IGenericRepository<Player> Players =>
|
||||
_playerRepository ??= new GenericRepository<Player>(_context);
|
||||
|
||||
public IGenericRepository<MissionCategory> MissionCategories =>
|
||||
_missionCategoryRepository ??= new GenericRepository<MissionCategory>(_context);
|
||||
|
||||
public IGenericRepository<Mission> Missions =>
|
||||
_missionRepository ??= new GenericRepository<Mission>(_context);
|
||||
|
||||
public IGenericRepository<MissionRankRule> MissionRankRules =>
|
||||
_missionRankRuleRepository ??= new GenericRepository<MissionRankRule>(_context);
|
||||
|
||||
public IGenericRepository<MissionSkillReward> MissionSkillRewards =>
|
||||
_missionSkillRewardRepository ??= new GenericRepository<MissionSkillReward>(_context);
|
||||
|
||||
public IGenericRepository<MissionItemReward> MissionItemRewards =>
|
||||
_missionItemRewardRepository ??= new GenericRepository<MissionItemReward>(_context);
|
||||
|
||||
public IGenericRepository<RankMissionRule> RankMissionRules =>
|
||||
_rankMissionRuleRepository ??= new GenericRepository<RankMissionRule>(_context);
|
||||
|
||||
public IGenericRepository<RankSkillRule> RankSkillRules =>
|
||||
_rankSkillRuleRepository ??= new GenericRepository<RankSkillRule>(_context);
|
||||
|
||||
public IGenericRepository<PlayerSkill> PlayerSkills =>
|
||||
_playerSkillRepository ??= new GenericRepository<PlayerSkill>(_context);
|
||||
|
||||
public IGenericRepository<PlayerMission> PlayerMissions =>
|
||||
_playerMissionRepository ??= new GenericRepository<PlayerMission>(_context);
|
||||
|
||||
public IGenericRepository<Dialogue> Dialogues =>
|
||||
_dialogueRepository ??= new GenericRepository<Dialogue>(_context);
|
||||
|
||||
public IGenericRepository<DialogueMessage> DialogueMessages =>
|
||||
_dialogueMessageRepository ??= new GenericRepository<DialogueMessage>(_context);
|
||||
|
||||
public IGenericRepository<DialogueMessageResponseOption> DialogueMessageResponseOptions =>
|
||||
_dialogueMessageResponseOptionRepository ??= new GenericRepository<DialogueMessageResponseOption>(_context);
|
||||
#endregion
|
||||
|
||||
#region Save Methods
|
||||
@@ -36,7 +98,7 @@ public class UnitOfWork : IUnitOfWork
|
||||
public async Task CommitTransactionAsync()
|
||||
{
|
||||
if (_transaction is null)
|
||||
throw new InvalidOperationException("A transaction has not been started.");
|
||||
throw new InvalidOperationException("No transactions have been started yet.");
|
||||
|
||||
try
|
||||
{
|
||||
@@ -64,5 +126,4 @@ public class UnitOfWork : IUnitOfWork
|
||||
_transaction = null;
|
||||
}
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user