Exemplo n.º 1
0
        public void AddToActivityCache(IResource resource)
        {
            IResourceActivityCache parser = null;

            if (_parsers != null && !_parsers.TryGetValue(GlobalConstants.ServerWorkspaceID, out parser))
            {
                parser = new ResourceActivityCache(CustomContainer.Get <IActivityParser>(), new ConcurrentDictionary <Guid, IDev2Activity>());
                _parsers.AddOrUpdate(GlobalConstants.ServerWorkspaceID, parser, (key, cache) =>
                {
                    if (_parsers.TryGetValue(key, out IResourceActivityCache existingCache))
                    {
                        return(existingCache);
                    }
                    return(cache);
                });
            }
            if (parser != null && !parser.HasActivityInCache(resource.ResourceID))
            {
                var service = GetService(GlobalConstants.ServerWorkspaceID, resource.ResourceID, resource.ResourceName);
                if (service != null)
                {
                    var sa = service.Actions.FirstOrDefault();
                    MapServiceActionDependencies(GlobalConstants.ServerWorkspaceID, sa);
                    ServiceActionRepo.Instance.AddToCache(resource.ResourceID, service);
                    var activity = GetActivity(sa);
                    parser.Parse(activity, resource.ResourceID);
                }
            }
        }
Exemplo n.º 2
0
        public IDev2Activity Parse(Guid workspaceID, Guid resourceID)
        {
            IResourceActivityCache parser = null;

            Dev2Logger.Debug($"Fetching Execution Plan for {resourceID} for workspace {workspaceID}");
            if (_parsers != null && !_parsers.TryGetValue(workspaceID, out parser))
            {
                parser = new ResourceActivityCache(CustomContainer.Get <IActivityParser>(), new ConcurrentDictionary <Guid, IDev2Activity>());
                _parsers.Add(workspaceID, parser);
            }
            if (parser != null && parser.HasActivityInCache(resourceID))
            {
                var dev2Activity = parser.GetActivity(resourceID);
                if (dev2Activity != null)
                {
                    return(dev2Activity);
                }
            }
            var resource = GetResource(workspaceID, resourceID);
            var service  = GetService(workspaceID, resourceID, resource.ResourceName);

            if (service != null)
            {
                var sa = service.Actions.FirstOrDefault();
                MapServiceActionDependencies(workspaceID, sa);
                ServiceActionRepo.Instance.AddToCache(resourceID, service);
                var activity = GetActivity(sa);
                if (parser != null)
                {
                    return(parser.Parse(activity, resourceID));
                }
            }
            return(null);
        }
Exemplo n.º 3
0
        public IDev2Activity Parse(Guid workspaceID, Guid resourceID, string executionId)
        {
            IResourceActivityCache parser = null;

            Dev2Logger.Debug($"Fetching Execution Plan for {resourceID} for workspace {workspaceID}", string.IsNullOrEmpty(executionId) ? GlobalConstants.WarewolfDebug : executionId);
            if (_parsers != null && !_parsers.TryGetValue(workspaceID, out parser))
            {
                parser = new ResourceActivityCache(CustomContainer.Get <IActivityParser>(), new ConcurrentDictionary <Guid, IDev2Activity>());
                _parsers.AddOrUpdate(workspaceID, parser, (key, cache) =>
                {
                    if (_parsers.TryGetValue(key, out IResourceActivityCache existingCache))
                    {
                        return(existingCache);
                    }
                    return(cache);
                });
            }
            if (parser != null && parser.HasActivityInCache(resourceID))
            {
                var dev2Activity = parser.GetActivity(resourceID);
                if (dev2Activity != null)
                {
                    return(dev2Activity);
                }
            }
            var resource = GetResource(workspaceID, resourceID);
            var service  = GetService(workspaceID, resourceID, resource.ResourceName);

            if (service != null)
            {
                var sa = service.Actions.FirstOrDefault();
                MapServiceActionDependencies(workspaceID, sa);
                ServiceActionRepo.Instance.AddToCache(resourceID, service);
                var activity = GetActivity(sa);
                if (parser != null)
                {
                    return(parser.Parse(activity, resourceID));
                }
            }

            return(null);
        }