using Hotline.FlowEngine.Definitions; using Hotline.FlowEngine.Workflows; using Hotline.Share.Dtos.FlowEngine; using Hotline.Share.Dtos.FlowEngine.Definition; using Hotline.Share.Dtos.FlowEngine.Workflow; using Mapster; namespace Hotline.Application.Mappers; public class WorkflowMapperConfigs : IRegister { public void Register(TypeAdapterConfig config) { config.ForType() .Ignore(d => d.Id); config.ForType() .Ignore(d => d.Id) .Ignore(d => d.PrevStepId) .Ignore(d => d.IsMain) .Ignore(d => d.Status) //.Ignore(d => d.ParentId) .Ignore(d => d.Handlers) //.Ignore(d => d.Steps) .Ignore(d => d.StartCountersignId) .Ignore(d => d.CountersignId) .Ignore(d => d.IsStartedCountersignEnd) .Ignore(d => d.IsOrigin) .Ignore(d => d.NextHandlers) .Ignore(d => d.NextMainHandler) .Ignore(d => d.NextStepCode) .Ignore(d => d.BackToCountersignEnd) .Ignore(d => d.IsSms) .Ignore(d => d.Opinion) .Ignore(d => d.FileJson) //.Ignore(d => d.StepExpiredTime) ; config.ForType() .Ignore(d => d.Id) .Ignore(d => d.ParentId) .Ignore(d => d.Status) .Map(d => d.StepId, s => s.Id); config.ForType() .Map(d => d.CreationTime, x => x.CreationTime) .Map(d => d.Additions, x => x.Additions) .Map(d => d.Opinion, x => x.Opinion) .Map(d => d.Creator.Name, x => x.Creator.Name) .IgnoreNonMapped(true) ; config.ForType() //.IgnoreIf((s, d) => s.Assigns == null || !s.Assigns.Any(), d => d.AssignOrgs) .IgnoreIf((s, d) => s.Supplements == null || !s.Supplements.Any(), d => d.Supplements) .IgnoreIf((s, d) => s.Traces == null || !s.Traces.Any(), d => d.Traces) //.IgnoreIf((s, d) => s.StepBoxes == null || !s.StepBoxes.Any(), d => d.StepBoxes) //.IgnoreIf((s, d) => s.Definition == null, d => d.Definition) //.Map(d => d.AssignOrgs, s => string.Join(',', s.Assigns.Select(d => d.OrgName))) .Ignore(d => d.Definition) .Ignore(d => d.StepBoxes) //.Ignore(d=>d.Supplements) //.Ignore(d => d.Traces) ; config.ForType() .Map(d => d.RealHandlerPhone, s => s.RealHandlerPhone) .Map(d => d.RealHandlerName, s => s.RealHandlerName) .Map(d => d.RealCommunicationMode, s => s.RealCommunicationMode) .Map(d => d.RealCommunicationTime, s => s.RealCommunicationTime) .Map(d => d.RealCommunicationAddress, s => s.RealCommunicationAddress) .Map(d => d.RealIsContacted, s => s.RealIsContacted) .Map(d => d.RealContactLocale, s => s.RealContactLocale) .IgnoreNonMapped(true); config.ForType() .Map(d=>d.WorkflowId, s=>s.Id) .Map(d=>d.ModuleId,s=>s.ModuleId) .Map(d=>d.ModuleCode,s=>s.ModuleCode) .Map(d=>d.ModuleName,s=>s.ModuleName) .IgnoreNonMapped(true) ; } }