Exemple #1
0
        public void AddFunctionExecutionActivity(string functionName, string invocationId, int concurrency, string executionStage, bool success, long executionTimeSpan, string executionId, DateTime eventTimeStamp, DateTime functionStartTime)
        {
            Enum.TryParse(executionStage, out FunctionExecutionStage functionExecutionStage);

            FunctionActivity activity = new FunctionActivity
            {
                FunctionName          = functionName,
                InvocationId          = invocationId,
                Concurrency           = concurrency,
                ExecutionStage        = functionExecutionStage,
                ExecutionId           = executionId,
                IsSucceeded           = success,
                ExecutionTimeSpanInMs = executionTimeSpan,
                EventTimeStamp        = eventTimeStamp,
                StartTime             = functionStartTime,
                Tenant = _tenant
            };

            if (!_functionActivities.TryAdd(activity))
            {
                _logger.LogWarning($"Buffer for function activities is full with {_functionActivities.Count} elements. Dropping current batch of function activities");
                DrainActivities(_currentFunctionActivities, _functionActivities);
            }

            _logger.LogDebug($"Added function activity : {functionName} {invocationId} {concurrency} {executionStage} {success} {executionTimeSpan}");
        }
Exemple #2
0
        private void ProcessNewActivity(FunctionActivity activity)
        {
            if (activity == null)
            {
                return;
            }

            var viewFactory = ActivityViewFactories.FirstOrDefault(f => f.Metadata.TargetType == activity.GetType());

            if (viewFactory == null)
            {
                return;
            }

            var view = viewFactory.CreateExport().Value;

            view.Caption  = viewFactory.Metadata.Caption;
            view.Activity = activity;

            var position = (activity.IsPropertyDefined(DesignProperties.PositionX) && activity.IsPropertyDefined(DesignProperties.PositionY))
        ? new Point(Convert.ToDouble(activity.GetValue(DesignProperties.PositionX)), Convert.ToDouble(activity.GetValue(DesignProperties.PositionY)))
        : new Point(0, 0);

            var host = new ActivityHost(activity.Id, view, position);

            _surface.Children.Add(host);
        }
Exemple #3
0
 public void RemoveItem(FunctionActivity item)
 {
     if (item == null)
     {
         return;
     }
     Workflow.RemoveItem(item);
 }
Exemple #4
0
        private void ProcessDeletedActivity(FunctionActivity activity)
        {
            if (activity == null)
            {
                return;
            }

            var host = _surface.Children.OfType <ActivityHost>().FirstOrDefault(h => h.Id == activity.Id);

            if (host == null)
            {
                return;
            }

            host.IncomingLinks.ToList().ForEach(incoming => RemoveItem(incoming.WorkflowLink));
            host.OutgoingLinks.ToList().ForEach(outgoing => RemoveItem(outgoing.WorkflowLink));

            _surface.Children.Remove(host);
        }