public HumanWorkProvider(HumanAvatar user, WorkAgent workAgent, WorkflowProvider workflow, IDecompositionService<WorkItem> decompService, GoalService goalService) { _user = user; _workflow = workflow; WorkAgent = workAgent; _decompService = decompService; _goalService = goalService; _workitemGoals = new Dictionary<WorkItem, List<Goal>>(); _completedGoals = new Dictionary<WorkItem, List<Goal>>(); }
public static HumanWorkProvider MapWorkProviderFromNPC(BotAvatar npc, HumanAvatar human, GoalService goalService, IDecompositionService<WorkItem> decompService) { HumanWorkProvider worker = new HumanWorkProvider (human, npc.WorkProvider.GetWorkAgent(), npc.WorkProvider.GetWorkflowProvider(), decompService, goalService); // Any currently processing tasks, remove npc.WorkProvider.GetWorkAgent().processing.Clear(); // Now add all the tasks that had been started to the worker foreach (var workItem in npc.WorkProvider.GetWorkAgent().started) { worker.AddWork(workItem); } return worker; }
public void Bind(HumanAvatar worklistOwner, string uuid) { UUID = uuid; UserName = worklistOwner.Name ?? worklistOwner.ActingName; var goals = worklistOwner.WorkProvider.GetGoals(); foreach (var goal in goals) { var model = new WorkListItemModel(); model.Bind(goal.Key, goal.Value); ProcessingWorkItems.Add(model); } foreach (var offered in worklistOwner.WorkProvider.WorkAgent.offered) { var model = new WorkListItemModel(); model.Bind(offered, new List<Goal>()); OfferedWorkItems.Add(model); } }