FlowAssignMode.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using Hotline.FlowEngine.Workflows;
  2. using Hotline.Share.Dtos.FlowEngine;
  3. using XF.Domain.Entities;
  4. namespace Hotline.FlowEngine;
  5. public class FlowAssignMode
  6. {
  7. public FlowAssignMode(EFlowAssignType flowAssignType, HandlerObjects handlerObjects)
  8. {
  9. FlowAssignType = flowAssignType;
  10. HandlerObjects = handlerObjects;
  11. }
  12. /// <summary>
  13. /// 流程指派类型
  14. /// </summary>
  15. public EFlowAssignType FlowAssignType { get; set; }
  16. ///// <summary>
  17. ///// 办理人/办理部门(UserIds/OrgCodes)
  18. ///// </summary>
  19. //public List<IdName> Handlers { get; set; }
  20. /// <summary>
  21. /// 办理对象
  22. /// </summary>
  23. public HandlerObjects HandlerObjects { get; set; }
  24. /// <summary>
  25. /// 办理人/办理部门(UserIds/OrgCodes)
  26. /// </summary>
  27. /// <returns></returns>
  28. public List<string> GetHandlers()
  29. {
  30. switch (FlowAssignType)
  31. {
  32. case EFlowAssignType.Org:
  33. return HandlerObjects.OrgGroups.SelectMany(d => d.HandlerOrgs.Select(x => x.Id)).ToList();
  34. case EFlowAssignType.User:
  35. return HandlerObjects.UserGroups.SelectMany(d => d.HandlerUsers.Select(x => x.Id)).ToList();
  36. default:
  37. throw new ArgumentOutOfRangeException();
  38. }
  39. }
  40. }