public static CasePlanInstanceAggregate New(string id, CasePlanAggregate caseplan, string nameIdentifier, Dictionary <string, string> parameters) { var result = new CasePlanInstanceAggregate(); var roles = caseplan.Roles.Select(_ => new CasePlanInstanceRole { EltId = _.EltId, Name = _.Name }).ToList(); var files = caseplan.Files.Select(_ => { var result = new CaseEltInstance { EltId = _.EltId, Id = CaseEltInstance.BuildId(id, _.EltId), Name = _.Name }; result.UpdateDefinitionType(_.DefinitionType); return(result); }).ToList(); var stage = CMMNParser.ExtractStage(caseplan.XmlContent, id); var evt = new CasePlanInstanceCreatedEvent(Guid.NewGuid().ToString(), id, 0, nameIdentifier, roles, stage, DateTime.UtcNow, caseplan.CaseFileId, caseplan.AggregateId, caseplan.Name, parameters, files); result.Handle(evt); result.DomainEvents.Add(evt); return(result); }
public static CasePlanInstanceAggregate New(string id, CasePlanAggregate caseplan, ICollection <CasePlanInstanceRole> permissions, Dictionary <string, string> parameters) { var result = new CasePlanInstanceAggregate(); var roles = caseplan.Roles.Select(_ => new CasePlanInstanceRole { Id = _.Id, Name = _.Name }).ToList(); var files = caseplan.Files.Select(_ => new CaseFileItemInstance { DefinitionType = _.DefinitionType, EltId = _.Id, Id = CaseFileItemInstance.BuildId(id, _.Id), Name = _.Name }).ToList(); var stage = CMMNParser.ExtractStage(caseplan.XmlContent, id); var json = stage.ToJson(); var evt = new CasePlanInstanceCreatedEvent(Guid.NewGuid().ToString(), id, 0, caseplan.CaseOwner, roles, permissions, json, DateTime.UtcNow, caseplan.AggregateId, caseplan.Name, parameters, files); result.Handle(evt); result.DomainEvents.Add(evt); return(result); }