protected internal virtual bool DeploymentsDiffer(IDeploymentEntity deployment, IDeploymentEntity saved) { if (deployment.GetResources() == null || saved.GetResources() == null) { return(true); } IDictionary <string, IResourceEntity> resources = deployment.GetResources(); IDictionary <string, IResourceEntity> savedResources = saved.GetResources(); foreach (string resourceName in resources.Keys) { IResourceEntity savedResource = savedResources[resourceName]; if (savedResource == null) { return(true); } if (!savedResource.Generated) { IResourceEntity resource = resources[resourceName]; byte[] bytes = resource.Bytes; byte[] savedBytes = savedResource.Bytes; if (!StructuralComparisons.StructuralEqualityComparer.Equals(bytes, savedBytes)) { return(true); } } } return(false); }
public virtual ParsedDeployment Build(BpmnDeploymentHelper bpmnDeploymentHelper) { IList <IProcessDefinitionEntity> processDefinitions = new List <IProcessDefinitionEntity>(); IDictionary <IProcessDefinitionEntity, BpmnParse> processDefinitionsToBpmnParseMap = new Dictionary <IProcessDefinitionEntity, BpmnParse>(); IDictionary <IProcessDefinitionEntity, IResourceEntity> processDefinitionsToResourceMap = new Dictionary <IProcessDefinitionEntity, IResourceEntity>(); var resources = deployment.GetResources().Values; foreach (IResourceEntity resource in resources) { if (IsBpmnResource(resource.Name)) { log.LogDebug($"Processing BPMN resource {resource.Name}"); BpmnParse parse = CreateBpmnParseFromResource(bpmnDeploymentHelper, resource); foreach (IProcessDefinitionEntity processDefinition in parse.ProcessDefinitions) { processDefinition.BusinessKey = parse.Deployment.BusinessKey; processDefinition.StartForm = parse.Deployment.StartForm; processDefinition.BusinessPath = parse.Deployment.BusinessPath; processDefinitions.Add(processDefinition); processDefinitionsToBpmnParseMap[processDefinition] = parse; processDefinitionsToResourceMap[processDefinition] = resource; } } } return(new ParsedDeployment(deployment, processDefinitions, processDefinitionsToBpmnParseMap, processDefinitionsToResourceMap)); }