using CMS.Plugin.WareCmsUtilityApi.Domain.Samples;
using Microsoft.Extensions.Logging;
using Volo.Abp.BackgroundJobs;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Uow;
namespace CMS.Plugin.WareCmsUtilityApi.Jobs
{
///
/// WareCmsUtilityApi 后台作业
///
public class WareCmsUtilityApiJob : BackgroundJob, ITransientDependency
{
private readonly ILogger _logger;
private readonly IUnitOfWorkManager _unitOfWorkManager;
private readonly ISampleRepository _sampleRepository;
///
/// Initializes a new instance of the class.
///
/// The logger.
/// The unit of work manager.
/// My entity name repository.
public WareCmsUtilityApiJob(ILogger logger, IUnitOfWorkManager unitOfWorkManager, ISampleRepository sampleRepository)
{
_logger = logger;
_unitOfWorkManager = unitOfWorkManager;
_sampleRepository = sampleRepository;
}
///
public override void Execute(WareCmsUtilityApiArgs args)
{
using var uow = _unitOfWorkManager.Begin(requiresNew: true);
var count = _sampleRepository.GetCountAsync().GetAwaiter().GetResult();
// 如果有更新数据库操作,需提交保存
// uow.SaveChangesAsync().GetAwaiter().GetResult();
_logger.LogInformation($"WareCmsUtilityApiJob Execute,Subject={args.Subject},Body={args.Body},Count={count}");
}
}
}