43 lines
1.5 KiB
C#
43 lines
1.5 KiB
C#
using Microsoft.Extensions.Logging;
|
|
|
|
namespace IRaCIS.Core.Application.BackGroundJob
|
|
{
|
|
public interface IObtainTaskAutoCancelJob
|
|
{
|
|
Task CancelQCObtaion(Guid subjectVisitId, DateTime startTime);
|
|
}
|
|
|
|
public class ObtainTaskAutoCancelJob : IObtainTaskAutoCancelJob
|
|
{
|
|
private readonly IRepository<SubjectVisit> _subjectVisitRepository;
|
|
private readonly ILogger<ObtainTaskAutoCancelJob> _logger;
|
|
|
|
public ObtainTaskAutoCancelJob(IRepository<SubjectVisit> subjectVisitRepository, ILogger<ObtainTaskAutoCancelJob> logger)
|
|
{
|
|
_subjectVisitRepository = subjectVisitRepository;
|
|
_logger = logger;
|
|
}
|
|
public async Task CancelQCObtaion(Guid subjectVisitId, DateTime startTime)
|
|
{
|
|
try
|
|
{
|
|
var dbSubjectVisit = await _subjectVisitRepository.FirstOrDefaultAsync(t => t.Id == subjectVisitId).IfNullThrowException();
|
|
|
|
dbSubjectVisit.IsTake = false;
|
|
dbSubjectVisit.CurrentActionUserId = null;
|
|
dbSubjectVisit.CurrentActionUserExpireTime = null;
|
|
|
|
var success = await _subjectVisitRepository.SaveChangesAsync();
|
|
|
|
_logger.LogWarning($"任务建立时间:{startTime} 取消时间:{DateTime.Now} 取消 受试者访视:{subjectVisitId}success:{success}");
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
_logger.LogError("hangfire 定时任务执行失败" + e.Message);
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|