WorkflowMapperConfigs.cs 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using Hotline.FlowEngine.Definitions;
  2. using Hotline.FlowEngine.Workflows;
  3. using Hotline.Share.Dtos.FlowEngine;
  4. using Hotline.Share.Dtos.FlowEngine.Definition;
  5. using Hotline.Share.Dtos.FlowEngine.Workflow;
  6. using Mapster;
  7. namespace Hotline.Application.Mappers;
  8. public class WorkflowMapperConfigs : IRegister
  9. {
  10. public void Register(TypeAdapterConfig config)
  11. {
  12. config.ForType<UpdateDefinitionDto, WorkflowDefinition>()
  13. .Ignore(d => d.Id);
  14. config.ForType<WorkflowStep, WorkflowStep>()
  15. .Ignore(d => d.Id)
  16. .Ignore(d => d.PrevStepId)
  17. .Ignore(d => d.IsMain)
  18. .Ignore(d => d.Status)
  19. //.Ignore(d => d.ParentId)
  20. .Ignore(d => d.Handlers)
  21. //.Ignore(d => d.Steps)
  22. .Ignore(d => d.StartCountersignId)
  23. .Ignore(d => d.CountersignId)
  24. .Ignore(d => d.IsStartedCountersignEnd)
  25. .Ignore(d => d.IsOrigin)
  26. .Ignore(d => d.NextHandlers)
  27. .Ignore(d => d.NextMainHandler)
  28. .Ignore(d => d.NextStepCode)
  29. .Ignore(d => d.BackToCountersignEnd)
  30. .Ignore(d => d.IsSms)
  31. .Ignore(d => d.Opinion)
  32. .Ignore(d => d.FileJson)
  33. //.Ignore(d => d.StepExpiredTime)
  34. ;
  35. config.ForType<WorkflowStep, WorkflowTrace>()
  36. .Ignore(d => d.Id)
  37. .Ignore(d => d.ParentId)
  38. .Ignore(d => d.Status)
  39. .Map(d => d.StepId, s => s.Id);
  40. config.ForType<WorkflowSupplement, WorkflowSupplementDto>()
  41. .Map(d => d.CreationTime, x => x.CreationTime)
  42. .Map(d => d.Additions, x => x.Additions)
  43. .Map(d => d.Opinion, x => x.Opinion)
  44. .Map(d => d.Creator.Name, x => x.Creator.Name)
  45. .IgnoreNonMapped(true)
  46. ;
  47. config.ForType<Workflow, WorkflowDto>()
  48. //.IgnoreIf((s, d) => s.Assigns == null || !s.Assigns.Any(), d => d.AssignOrgs)
  49. .IgnoreIf((s, d) => s.Supplements == null || !s.Supplements.Any(), d => d.Supplements)
  50. .IgnoreIf((s, d) => s.Traces == null || !s.Traces.Any(), d => d.Traces)
  51. //.IgnoreIf((s, d) => s.StepBoxes == null || !s.StepBoxes.Any(), d => d.StepBoxes)
  52. //.IgnoreIf((s, d) => s.Definition == null, d => d.Definition)
  53. //.Map(d => d.AssignOrgs, s => string.Join(',', s.Assigns.Select(d => d.OrgName)))
  54. .Ignore(d => d.Definition)
  55. .Ignore(d => d.StepBoxes)
  56. //.Ignore(d=>d.Supplements)
  57. //.Ignore(d => d.Traces)
  58. ;
  59. config.ForType<NextWorkflowDto, Workflow>()
  60. .Map(d => d.RealHandlerPhone, s => s.RealHandlerPhone)
  61. .Map(d => d.RealHandlerName, s => s.RealHandlerName)
  62. .Map(d => d.RealCommunicationMode, s => s.RealCommunicationMode)
  63. .Map(d => d.RealCommunicationTime, s => s.RealCommunicationTime)
  64. .Map(d => d.RealCommunicationAddress, s => s.RealCommunicationAddress)
  65. .Map(d => d.RealIsContacted, s => s.RealIsContacted)
  66. .Map(d => d.RealContactLocale, s => s.RealContactLocale)
  67. .IgnoreNonMapped(true);
  68. config.ForType<Workflow, WorkflowStep>()
  69. .Map(d=>d.WorkflowId, s=>s.Id)
  70. .Map(d=>d.ModuleId,s=>s.ModuleId)
  71. .Map(d=>d.ModuleCode,s=>s.ModuleCode)
  72. .Map(d=>d.ModuleName,s=>s.ModuleName)
  73. .IgnoreNonMapped(true)
  74. ;
  75. }
  76. }