34 lines
1.2 KiB
C#
34 lines
1.2 KiB
C#
using e_suite.Database.Core.Tables.Activity;
|
|
using e_suite.Workflow.Core.Enums;
|
|
using e_suite.Workflow.Core.Interfaces;
|
|
|
|
namespace e_suite.Workflow.Core;
|
|
|
|
public abstract class TaskBase : ITask, IBudget, ITags, IJoin
|
|
{
|
|
public Guid Guid { get; set; } = Guid.CreateVersion7();
|
|
public required ITask Parent { get; set; }
|
|
public required string Name { get; set; }
|
|
public string Description { get; set; } = string.Empty;
|
|
|
|
public required TimeSpan Duration { get; set; }
|
|
public List<ITask> Predecessors { get; set; } = [];
|
|
public decimal UnitsOfWork { get; set; } = 1;
|
|
public required Cost Cost { get; set; }
|
|
public BudgetOption BudgetOption { get; set; } = BudgetOption.DoNotShow;
|
|
public bool AllowTimeTracking { get; set; } = true;
|
|
public Priority Priority { get; set; } = Priority.Normal;
|
|
public IList<string> Tags { get; set; } = new List<string>();
|
|
|
|
public List<Guid> WaitFor { get; }
|
|
|
|
public virtual Task OnStartedAsync(ActivityTask activityTask)
|
|
{
|
|
return Task.CompletedTask;
|
|
}
|
|
|
|
public virtual Task OnCompleteAsync(ActivityTask activityTask)
|
|
{
|
|
return Task.CompletedTask;
|
|
}
|
|
} |