using System; namespace Packager.AssetCooker { public class Task { public enum TaskState { Idle, Cooking, Done, Failed }; public string FileToProcess { get; private set; } public TaskState State { get; set; } public TimeSpan Duration { get; set; } public FileType FileType { get; private set; } // derived states public bool Failed => State == TaskState.Failed; public bool Finished => State == TaskState.Done || State == TaskState.Failed; public Task(string fileToProcess) { FileToProcess = fileToProcess.TrimStart('\\', '/'); State = TaskState.Idle; FileType = fileToProcess.GetFileType(); } public override string ToString() { return FileToProcess; } } }