feat: repositories
This commit is contained in:
@@ -1,3 +1,5 @@
|
|||||||
|
using GamificationService.Database.GenericRepository;
|
||||||
|
using GamificationService.Models.Database;
|
||||||
using Microsoft.EntityFrameworkCore.Storage;
|
using Microsoft.EntityFrameworkCore.Storage;
|
||||||
|
|
||||||
namespace GamificationService.Database.UnitOfWork;
|
namespace GamificationService.Database.UnitOfWork;
|
||||||
@@ -8,6 +10,22 @@ public class UnitOfWork : IUnitOfWork
|
|||||||
private readonly ApplicationContext _context;
|
private readonly ApplicationContext _context;
|
||||||
private IDbContextTransaction? _transaction;
|
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
|
#endregion
|
||||||
|
|
||||||
public UnitOfWork(ApplicationContext context)
|
public UnitOfWork(ApplicationContext context)
|
||||||
@@ -16,6 +34,50 @@ public class UnitOfWork : IUnitOfWork
|
|||||||
}
|
}
|
||||||
|
|
||||||
#region Repositories
|
#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
|
#endregion
|
||||||
|
|
||||||
#region Save Methods
|
#region Save Methods
|
||||||
@@ -36,7 +98,7 @@ public class UnitOfWork : IUnitOfWork
|
|||||||
public async Task CommitTransactionAsync()
|
public async Task CommitTransactionAsync()
|
||||||
{
|
{
|
||||||
if (_transaction is null)
|
if (_transaction is null)
|
||||||
throw new InvalidOperationException("A transaction has not been started.");
|
throw new InvalidOperationException("No transactions have been started yet.");
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -64,5 +126,4 @@ public class UnitOfWork : IUnitOfWork
|
|||||||
_transaction = null;
|
_transaction = null;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user