using System;
using Hangfire.Common;
using Hangfire.States;
using Hangfire.Storage;
namespace Dpz.Core.WebApi.Hangfire;
/// <summary>
///
/// </summary>
public class ProlongExpirationTimeAttribute : JobFilterAttribute, IApplyStateFilter
{
/// <summary>
/// 任务调度DB记录的天数 默认30天
/// </summary>
public int ExpirationTimeoutDays { get; set; }
/// <summary>
///
/// </summary>
/// <param name="context"></param>
/// <param name="transaction"></param>
public void OnStateApplied(ApplyStateContext context, IWriteOnlyTransaction transaction)
{
context.JobExpirationTimeout = TimeSpan.FromDays(ExpirationTimeoutDays <= 0 ? 30 : ExpirationTimeoutDays);
}
/// <summary>
/// /
/// </summary>
/// <param name="context"></param>
/// <param name="transaction"></param>
public void OnStateUnapplied(ApplyStateContext context, IWriteOnlyTransaction transaction)
{
}
}