Backend/e-suite.Modules.RunningActivityManager/repository/ActivityRepository.cs

49 lines
1.8 KiB
C#

using e_suite.API.Common.repository;
using e_suite.Database.Audit;
using e_suite.Database.Core;
using e_suite.Database.Core.Extensions;
using e_suite.Database.Core.Tables.Activity;
using eSuite.Core.Miscellaneous;
using Microsoft.EntityFrameworkCore;
namespace e_suite.Modules.RunningActivityManager.repository;
public class ActivityRepository : RepositoryBase, IActivityRepository
{
public ActivityRepository(IEsuiteDatabaseDbContext databaseDbContext) : base(databaseDbContext)
{
}
public async Task CreateActivityInstanceAsync(
AuditUserDetails auditUserDetails,
Activity activity,
CancellationToken cancellationToken
)
{
DatabaseDbContext.Activities.Add(activity);
await DatabaseDbContext.SaveChangesAsync(auditUserDetails, cancellationToken);
}
public async Task<Activity?> GetActivityInstanceAsync(GeneralIdRef activityId, CancellationToken cancellationToken)
{
return await DatabaseDbContext.Activities
.Include( x=> x.WorkflowVersion)
.Include( x => x.Tasks)
.FindByGeneralIdRefAsync(activityId, cancellationToken);
}
public async Task UpdateActivityInstanceAsync(AuditUserDetails auditUserDetails, Activity activityInstance, CancellationToken cancellationToken)
{
await DatabaseDbContext.SaveChangesAsync(auditUserDetails, cancellationToken);
}
public async Task AddActivityTasksAsync(
AuditUserDetails auditUserDetails,
IEnumerable<ActivityTask> activityTasks,
CancellationToken cancellationToken
)
{
DatabaseDbContext.ActivityTasks.AddRange(activityTasks);
await DatabaseDbContext.SaveChangesAsync(auditUserDetails, cancellationToken);
}
}