-
Notifications
You must be signed in to change notification settings - Fork 10
1.4 Recurring process
Marjan Nikolovski edited this page Apr 13, 2021
·
3 revisions
The recurring process represents a business process that need to be executed on a certain schedule.
The recurring process contains 1 layer:
- Sync
public class MyRecurringProcess : RecurringProcess<VoidResult>
{
public override RecurrencePatternConfiguration Profile => new DailyRecurrencePatternConfiguration(1).At(8, 0);
/// <summary>
/// Sync process
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public override VoidResult Sync()
{
return Ok();
}
}
- VoidResult, MethodResult or ListResult out generic argument
- Critical attribute
- RecurrencePatternConfiguration
- TimePartRecurrencePatternConfiguration
- DailyRecurrencePatternConfiguration
- WeeklyRecurrencePatternConfiguration
- WorkdayRecurrencePatternConfiguration
- WeekendRecurrencePatternConfiguration
- MonthlyRecurrencePatternConfiguration
- MonthlyNamedRecurrencePatternConfiguration
public class SendPromotionalEmails : RecurringProcess<VoidResult>
{
[Import] private IUserRepository UserRepository { get; set; }
public override RecurrencePatternConfiguration Profile => new DailyRecurrencePatternConfiguration(1).At(8, 0);
/// <summary>
/// Sync process
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
public override VoidResult Sync()
{
var users = UserRepository.GetAll();
for(var user in users)
{
var result = Continue<SendPromotionalEmail>().With(user.Email);
if(result.IsFaulted) return Fail(result);
}
}
}