Пример #1
0
        public IDev2Activity Parse(DynamicActivity activity, Guid resourceIdGuid, bool failOnException = false)
        {
            if (HasActivityInCache(resourceIdGuid))
            {
                return(GetActivity(resourceIdGuid));
            }
            var dynamicActivity = activity;

            if (dynamicActivity != null)
            {
                try
                {
                    IDev2Activity act = _activityParser.Parse(dynamicActivity);
                    if (_cache.TryAdd(resourceIdGuid, act))
                    {
                        return(act);
                    }
                }
                // ReSharper disable EmptyGeneralCatchClause
                catch (Exception err) //errors caught inside
                // ReSharper restore EmptyGeneralCatchClause
                {
                    Dev2Logger.Log.Error(err);
                    if (failOnException)
                    {
                        throw;
                    }
                }
            }
            return(null);
        }
Пример #2
0
        List <ConflictTreeNode> BuildNodeItems(WorkflowDesigner wd, ModelService modelService, Flowchart flowchartDiff)
        {
            var idsLocations = GetIdLocations(wd, modelService);
            var nodes        = new List <ConflictTreeNode>();
            var startNode    = ModelItemUtils.CreateModelItem(flowchartDiff.StartNode);

            if (startNode != null)
            {
                var start             = _activityParser.Parse(new List <IDev2Activity>(), startNode);
                var shapeLocation     = GetShapeLocation(wd, startNode);
                var startConflictNode = new ConflictTreeNode(start, shapeLocation);
                nodes.Add(startConflictNode);
                BuildItems(idsLocations, nodes, start, startConflictNode, flowchartDiff);
            }

            return(nodes);
        }
Пример #3
0
        List <(string uniqueId, Point location)> GetIdLocations(WorkflowDesigner wd, ModelService modelService)
        {
            var allNodes     = modelService.Find(modelService.Root, typeof(FlowNode)).ToList();
            var idsLocations = new List <(string uniqueId, Point location)>();

            foreach (var n in allNodes)
            {
                var           loc          = GetShapeLocation(wd, n);
                IDev2Activity dev2Activity = _activityParser?.Parse(new List <IDev2Activity>(), n);
                var           id           = dev2Activity?.UniqueID;
                idsLocations.Add((id, loc));
            }
            return(idsLocations);
        }
Пример #4
0
        public IDev2Activity Parse(DynamicActivity activity, Guid resourceIdGuid, bool failOnError)
        {
            if (HasActivityInCache(resourceIdGuid))
            {
                var dev2Activity = GetActivity(resourceIdGuid);
                if (dev2Activity != null)
                {
                    return(dev2Activity);
                }
            }
            var dynamicActivity = activity;

            if (dynamicActivity != null)
            {
                try
                {
                    var act = _activityParser.Parse(dynamicActivity);
                    if (Cache.TryAdd(resourceIdGuid, act))
                    {
                        return(act);
                    }
                    Cache.AddOrUpdate(resourceIdGuid, act, (guid, dev2Activity) =>
                    {
                        Cache[resourceIdGuid] = act;
                        return(act);
                    });
                    return(act);
                }
                catch (InvalidWorkflowException e)
                {
                    Dev2Logger.Error($"Error processing {resourceIdGuid}: " + e.Message, "Warewolf Error");
                    if (failOnError)
                    {
                        throw;
                    }
                }
                catch (Exception err) //errors caught inside
                {
                    Dev2Logger.Error(err, "Warewolf Error");
                    if (failOnError)
                    {
                        throw;
                    }
                }
            }
            return(null);
        }
Пример #5
0
        public IDev2Activity Parse(DynamicActivity activity, Guid resourceIdGuid)
        {
            if (HasActivityInCache(resourceIdGuid))
            {
                return(GetActivity(resourceIdGuid));
            }
            var dynamicActivity = activity;

            if (dynamicActivity != null)
            {
                IDev2Activity act = _activityParser.Parse(dynamicActivity);
                if (_cache.TryAdd(resourceIdGuid, act))
                {
                    return(act);
                }
            }
            return(null);
        }