45 lines
1.1 KiB
C#
45 lines
1.1 KiB
C#
namespace InServiceQue.Core.Models;
|
|
|
|
public class QueueTask: IQueueTask
|
|
{
|
|
private string _type;
|
|
public Guid Id { get; init; }
|
|
public string TaskType { get; init; } = default!;
|
|
public DateTime DateCreated { get; init; }
|
|
public DateTime? DateProcessed { get; private set; }
|
|
public DateTime? DateClosed { get; private set; }
|
|
public int Attempts { get; private set; }
|
|
public string? Payload { get; init; }
|
|
|
|
|
|
public QueueTask(string taskType, string? payload)
|
|
{
|
|
Id = Guid.NewGuid();
|
|
TaskType = taskType;
|
|
DateCreated = DateTime.UtcNow;
|
|
Payload = payload;
|
|
}
|
|
|
|
public QueueTask(IQueueTask task): this(task.GetTypeString(), task.GetPayloadString()) { }
|
|
|
|
public void MarkAttempt()
|
|
{
|
|
DateProcessed = DateTime.UtcNow;
|
|
Attempts++;
|
|
}
|
|
|
|
public void SolveTask()
|
|
{
|
|
DateClosed = DateTime.UtcNow;
|
|
}
|
|
|
|
string IQueueTask.GetTypeString()
|
|
{
|
|
return TaskType;
|
|
}
|
|
|
|
string IQueueTask.GetPayloadString()
|
|
{
|
|
return Payload ?? string.Empty;
|
|
}
|
|
} |