public PropertyIterator( IExpressionEvaluatorProvider exparessionEvaluatorProvider, IPropertyVisitor propertyVisitor, ISearchStatus searchStatus) : this(exparessionEvaluatorProvider, propertyVisitor, 50, searchStatus) { this._exparessionEvaluatorProvider = exparessionEvaluatorProvider; }
public PropertyIterator( IExpressionEvaluatorProvider exparessionEvaluatorProvider, IPropertyVisitor propertyVisitor, int maxDepth, ISearchStatus searchStatus) { _exparessionEvaluatorProvider = exparessionEvaluatorProvider; _propertyVisitor = propertyVisitor; _searchStatus = searchStatus; MaxDepth = maxDepth; }
public ExpressionEvaluatorViewModel(IVsEnvironmentEvents vsEvents, ISearchStatus searchStatus, IExpressionEvaluatorProvider expressionEvaluatorProvider, ITaskSchedulerProvider taskSchedulerProvider) { _visibleProperties.CollectionChanged += visibleProperties_CollectionChanged; System.Windows.Data.BindingOperations.EnableCollectionSynchronization(_visibleProperties, _visiblePropertiesLock); _searchStatus = searchStatus; _searchStatus.StatusUpdated = (s) => SearchingReportText = s; _expressionEvaluatorProvider = expressionEvaluatorProvider; _taskSchedulerProvider = taskSchedulerProvider; vsEvents.EvaluatorBecomeAvailable += (a, b) => { IsEnabled = true; }; vsEvents.EvaluatorBecomeUnAvailable += VsEvents_EvaluatorBecomeUnAvailable; }
private void IterateThrueProperty(IExpressionEvaluatorProvider expressionEvaluatorProvider) { ErrorMessage = null; _visibleProperties.Clear(); StatusBarText = "Searching..."; Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); if (_property != null) { IPropertyVisitor propertyVisitor = new ActionBasedPropertyVisitor( expandableProperty => { Application.Current.Dispatcher.Invoke(() => { _visibleProperties.AddRange(expandableProperty.Select(item => DebugPropertyViewModel.From(item))); }); _logger.Info(String.Join("\n", expandableProperty)); }, valueProperty => { Application.Current.Dispatcher.Invoke(() => { _visibleProperties.AddRange(valueProperty.Select(item => DebugPropertyViewModel.From(item))); }); _logger.Info(String.Join("\n", valueProperty)); }); PropertyIterator propertyIterator = new PropertyIterator( expressionEvaluatorProvider, propertyVisitor, _searchStatus); _cancelSearch.Action = propertyIterator.Cancel; var searchTask = Task.Run( () => { IsSearchInProgress = true; propertyIterator.TraversPropertyTree(_property, _searchText); }) .ContinueWith(t => { IsSearchInProgress = false; stopwatch.Stop(); if (t.Exception != null) { if (t.Exception.InnerExceptions.First() is TaskCanceledException) { _logger.Info("Search canceled"); PostSearchCompleteMessage(stopwatch.Elapsed, true); } else // Error { _logger.Error(t.Exception.ToString()); StatusBarText = "Error during evaluation. " + t.Exception.ToString(); throw t.Exception; } } else { _logger.Info("Search finished"); PostSearchCompleteMessage(stopwatch.Elapsed, false); } _cancelSearch.Action = null; }, _taskSchedulerProvider.GetCurrentScheduler()); } else { _logger.Info("ExpressionEvaluator is not initialized"); ErrorMessage = "ExpressionEvaluator is not initialized"; } }
/// <inheritdoc/> public V1CreateWorkflowInstanceCommandHandler(ILoggerFactory loggerFactory, IMediator mediator, IMapper mapper, IHttpClientFactory httpClientFactory, IRepository <V1Workflow> workflows, IRepository <V1WorkflowInstance> workflowInstances, IExpressionEvaluatorProvider expressionEvaluatorProvider) : base(loggerFactory, mediator, mapper) { this.HttpClientFactory = httpClientFactory; this.Workflows = workflows; this.WorkflowInstances = workflowInstances; this.ExpressionEvaluatorProvider = expressionEvaluatorProvider; }
/// <summary> /// Initializes a new <see cref="WorkflowRuntimeContext"/> /// </summary> /// <param name="serviceProvider">The current <see cref="IServiceProvider"/></param> /// <param name="logger">The service used to perform logging</param> /// <param name="expressionEvaluatorProvider">The service used to create provide <see cref="IExpressionEvaluator"/>s</param> /// <param name="secretManager">The service used to manage secrets</param> /// <param name="managementApi">The service used to interact with the Synapse Public API</param> /// <param name="runtimeApi">The service used to interact with the Synapse Runtime API</param> public WorkflowRuntimeContext(IServiceProvider serviceProvider, ILogger <WorkflowRuntimeContext> logger, IExpressionEvaluatorProvider expressionEvaluatorProvider, ISecretManager secretManager, ISynapseManagementApi managementApi, ISynapseRuntimeApi runtimeApi) { this.ServiceProvider = serviceProvider; this.Logger = logger; this.ExpressionEvaluatorProvider = expressionEvaluatorProvider; this.SecretManager = secretManager; this.ManagementApi = managementApi; this.RuntimeApi = runtimeApi; }