public MessageHandlerMethodDispatcher(MethodInfo methodInfo, Type handledMessageType) { _executor = GetExecutor(methodInfo); MethodInfo = methodInfo; ParameterTypes = methodInfo.GetParameters().Select(x => x.ParameterType).ToList().AsReadOnly(); HandledMessageType = handledMessageType; }
/// <summary> /// Add services for viber functionality /// </summary> /// <remarks> /// Use it after all <see cref="IAction{T}" /> registration /// </remarks> /// <param name="services"> /// <see cref="IServiceCollection" /> /// </param> public static void AddViberActionsExecutor(this IServiceCollection services) { var serviceProvider = services.BuildServiceProvider(); var commands = serviceProvider.GetServices <IAction <ViberCommand> >(); var commandExecutor = new ActionExecutor <ViberCommand>(commands); services.AddSingleton <IActionExecutor <ViberCommand> >(commandExecutor); }
public void DiscoverGameAlreadyFinishedAfterGettingActionStatus() { _messageProvider.Setup(x => x.Receive <ActionValidPayload>()).Returns(new Message <ActionValidPayload>()); _messageProvider.Setup(x => x.Receive <DiscoveryResponsePayload>()).Throws(new GameAlreadyFinishedException()); var actionExecutor = new ActionExecutor(_messageProvider.Object, _playerState); Assert.Throws <GameAlreadyFinishedException>(() => actionExecutor.Discover()); }
public void DiscoverActionInvalid() { _messageProvider.Setup(x => x.Receive <ActionValidPayload>()).Throws(new ActionInvalidException()); var actionExecutor = new ActionExecutor(_messageProvider.Object, _playerState); var result = actionExecutor.Discover(); Assert.That(result, Is.False); }
public void MoveWrongDirection() { var invalidDirection = "top left"; var actionExecutor = new ActionExecutor(_messageProvider.Object, _playerState); var result = actionExecutor.Move(invalidDirection); Assert.That(result, Is.False); }
public void DiscoverWrongPayload() { _messageProvider.Setup(x => x.Receive <ActionValidPayload>()).Returns(new Message <ActionValidPayload>()); _messageProvider.Setup(x => x.Receive <DiscoveryResponsePayload>()).Throws(new WrongPayloadException()); var actionExecutor = new ActionExecutor(_messageProvider.Object, _playerState); Assert.Throws <WrongPayloadException>(() => actionExecutor.Discover()); }
// perform the user selected action internal async void PerformAction(DetailControl detailControl) { ActivateOutputWindow(); _outputConsole.Clear(); var progressDialog = new ProgressDialog(_outputConsole); progressDialog.Owner = Window.GetWindow(this); progressDialog.WindowStartupLocation = WindowStartupLocation.CenterOwner; progressDialog.FileConflictAction = detailControl.FileConflictAction; progressDialog.Show(); try { var actions = await detailControl.ResolveActionsAsync(progressDialog); // show preview var model = (DetailControlModel)_packageDetail.DataContext; if (model.Options.ShowPreviewWindow) { var shouldContinue = PreviewActions(actions); if (!shouldContinue) { return; } } // show license agreeement bool acceptLicense = ShowLicenseAgreement(actions); if (!acceptLicense) { return; } // Create the executor and execute the actions var userAction = detailControl.GetUserAction(); var executor = new ActionExecutor(); await Task.Run( () => { executor.ExecuteActions(actions, progressDialog, userAction); }); UpdatePackageStatus(); detailControl.Refresh(); } catch (Exception ex) { var errorDialog = new ErrorReportingDialog( ex.Message, ex.ToString()); errorDialog.ShowModal(); } finally { progressDialog.CloseWindow(); } }
private void OnEnable() { executor = target as ActionExecutor; _ID = serializedObject.FindProperty("_ID"); endDelayTime = serializedObject.FindProperty("endDelayTime"); onBegin = serializedObject.FindProperty("onBegin"); onExecuting = serializedObject.FindProperty("onExecuting"); onEnd = serializedObject.FindProperty("onEnd"); onUndo = serializedObject.FindProperty("onUndo"); }
public override void Setup() { base.Setup(); bus = RabbitHutch.CreateBus("host=vmdcvppt1"); messagePublisher = new RabbitMessagePublisher(bus); executor = new ActionExecutor(new RabbitMessageBus(bus, "XXXXXX")); executor.LogToConsole = true; executor.OnFailedAssertionThrow <AssertionException>(); }
public void Execute_ValidatesParameters() { // Arrange var items = new[] { "Hello", "World" }; var executor = new ActionExecutor <string>(items); // Act // Assert Assert.Throws <ArgumentNullException>(() => executor.Execute(null /* action */)); }
/// <summary> /// Prepares the Grabber for execution of given worker. /// </summary> /// <typeparam name="Worker">The type of given worker.</typeparam> /// <param name="w">An ActionExecutor.</param> /// <param name="autostart">Controls whether to already invoke Start() on the given worker.</param> /// <returns>The worker thread.</returns> private TWorker CreateWorker <TWorker>(TWorker w, bool autostart) where TWorker : ActionExecutor { WaitFor(); Worker = w; if (autostart) { w.Start(); } return(w); }
public override void ActionWhenChoose() { Console.Clear(); if (ActionExecutor != null) { ActionExecutor.Invoke(); Messages.pressAnyKey(); Console.Clear(); MenuThatItemBelongsTo.Show(); } }
public void PlaceDownPieceActionInvalid() { _messageProvider.Setup(x => x.Receive <ActionValidPayload>()).Throws(new ActionInvalidException()); var actionExecutor = new ActionExecutor(_messageProvider.Object, _playerState); (var boolResult, var enumResult) = actionExecutor.PlaceDownPiece(); Assert.That(boolResult, Is.False); Assert.That(enumResult, Is.EqualTo(PlaceDownPieceResult.NoScore)); }
internal void SelectAction(BaGuaElement action) { if (!IsAllowedAction(action)) { throw new InvalidOperationException("Can't select this action now"); } var options = action.GetAvailableOptions(_currentPlayer, this); _actionExecutor = new ActionExecutor(options, _currentPlayer, this); }
/// <summary> /// Executes an action /// </summary> /// <param name="operationTitle">The title of the messagbox</param> /// <param name="action">The action to execute</param> /// <param name="retryable">A flag to allow asking to retry when execution fails</param> /// <param name="showSuccessMessage">Show message when execution passes</param> /// <param name="ignoreResponseMessage">When return type id <see cref="IResponse"/>, Ignore messages returned by the response</param> /// <param name="successMessage">The message to show when execution passes</param> /// <returns><see cref="IResponse"/></returns> public static IResponse Process(string operationTitle, Action action, bool retryable, bool showSuccessMessage = false, bool ignoreResponseMessage = false, string successMessage = "Processed successfully") { using (var form = new ActionExecutor(operationTitle, retryable, showSuccessMessage, ignoreResponseMessage, successMessage).SetAction(action).SetDetail(operationTitle)) { form.ShowDialog(); return(form.Response); } }
public void Initialize(int cubeX, int cubeY, HexGrid grid, string name, Character parentCharacter, GameObject mainCanvas, Text textName, Text textHP, ActionExecutor actionExecutor) { Initialize(cubeX, cubeY, grid, name, mainCanvas, textName, textHP, actionExecutor); this.originalCharacter = parentCharacter; this.transform.position = parentCharacter.transform.position; this.actionTakenCount = 0; // Bind events this.grid.SelectCell += OnCellSelectedAvatar; this.grid.HoverOnCell += OnCellHoverOn; this.grid.HoverOffCell += OnCellHoverOff; }
public void RefreshBoardStateNoPlayerId() { var assignedPlayerId = Guid.NewGuid().ToString(); var msg2 = new Message <RefreshStateResponsePayload> { Type = Common.Consts.RefreshStateResponse, SenderId = Common.Consts.GameMasterId, RecipientId = assignedPlayerId, Payload = new RefreshStateResponsePayload { CurrentPositionDistanceToClosestPiece = 10, Team1Score = 5, Team2Score = 6, Timestamp = 123, PlayerPositions = new List <PlayerPositionDTO> { new PlayerPositionDTO { PlayerId = "xxx", X = 10, Y = 10 }, new PlayerPositionDTO { PlayerId = "yyy", X = 20, Y = 20 } } } }; _messageProvider.Setup(x => x.Receive <ActionValidPayload>()).Returns(new Message <ActionValidPayload>()); _messageProvider.Setup(x => x.Receive <RefreshStateResponsePayload>()).Returns(msg2); var game = new GameInfo() { BoardSize = new BoardSize { GoalArea = 20, TaskArea = 20, X = 20 } }; _playerState.Game = game; _playerState.Board = new Board(game.BoardSize); _playerState.Id = assignedPlayerId; var actionExecutor = new ActionExecutor(_messageProvider.Object, _playerState); Assert.Throws <InvalidOperationException>(() => actionExecutor.RefreshBoardState()); }
public void UninstallPackage(Project project, string packageId, bool removeDependencies) { if (project == null) { throw new ArgumentNullException("project"); } if (String.IsNullOrEmpty(packageId)) { throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, CommonResources.Argument_Cannot_Be_Null_Or_Empty, "packageId")); } IVsPackageManager packageManager = _packageManagerFactory.CreatePackageManager(_packageRepository, useFallbackForDependencies: false); IProjectManager projectManager = packageManager.GetProjectManager(project); EventHandler <PackageOperationEventArgs> packageReferenceRemovingHandler = (sender, e) => { _scriptExecutor.Execute( e.InstallPath, PowerShellScripts.Uninstall, e.Package, project, projectManager.GetTargetFrameworkForPackage(packageId), NullLogger.Instance); }; try { projectManager.PackageReferenceRemoving += packageReferenceRemovingHandler; // Locate the package to uninstall IPackage package = packageManager.LocatePackageToUninstall( projectManager, packageId, version: null); // resolve actions var resolver = new ActionResolver() { RemoveDependencies = removeDependencies }; resolver.AddOperation(PackageAction.Uninstall, package, projectManager); var actions = resolver.ResolveActions(); // execute actions var actionExecutor = new ActionExecutor(); actionExecutor.Execute(actions); } finally { projectManager.PackageReferenceRemoving -= packageReferenceRemovingHandler; } }
void Awake() { this.buttonActionsLabels = new string[] { "移动", "死亡", "爆裂", "沉默", "后跳", "射击" }; this.actionCalculator = new ActionExecutor(); this.isExecutingActions = false; }
public void Execute_FlowsCorrectOrder() { // Arrange var items = new[] { "Hello", "World" }; var executor = new ActionExecutor <string>(items); var results = new List <string>(); // Act executor.Execute(s => results.Add(s)); // Assert Assert.Equal(items, results); }
public void Accepts_EmptyArray() { // Arrange var items = new string[0]; var executor = new ActionExecutor <string>(items); bool called = false; // Act executor.Execute(s => called = true); // Assert Assert.Equal(false, called); }
public SessionManagerControl(FeedbackViewModel feedbackViewModel, ActionExecutor actionExec, ISettingsStore settingsStore) { DataContext = feedbackViewModel; _feedbackViewModel = feedbackViewModel; _actionExec = actionExec; _feedbackViewModel.ConfirmationRequest.Raised += new ConfirmationRequestHandler(this).Handle; _settingsStore = settingsStore; InitializeComponent(); }
/// <summary> /// 触发后执行 /// </summary> protected void OnAfterExecuteWorkItem() { var delegateService = GetDelegateService(); var actionList = this.EventActivity.ActionList; ActionExecutor.ExecteActionListAfter(actionList, delegateService as IDelegateService); //----> 节点流转完成后,调用活动完成执行的委托事件 DelegateExecutor.InvokeExternalDelegate(this.Session, EventFireTypeEnum.OnActivityExecuted, this.EventActivity, ActivityForwardContext); }
public static void Push(ActionExecutor executor, ActionType actionType, float delay = -1, float startTime = 0) { if (actionType == ActionType.Execute) { executor.Execute(delay, startTime); } else { executor.Undo(delay, startTime); } actionStacks.Push(new ActionStackData(executor, actionType)); //Debug.Log("Push: " + executor.ID); }
/// <summary> /// Fires the event. /// </summary> public override void Fire() { try { executor = Grabber.Instance.PutDown(); executor.Start(); Pose.Instance.TakeStableArmPosition(); ReportSuccess(); } catch { ReportFailure(); } }
bool ExistsID() { var executors = FindObjectsOfType <ActionExecutor>(); ActionExecutor find = System.Array.Find(executors, x => x.ID == _ID.stringValue); if (!find) { return(false); //若没有找到,则ID可用 } //找到的对象不是原对象 或者 找到的对象是原对象且同ID超过一个 时为true return(find != executor || (find == executor && System.Array.FindAll(executors, x => x.ID == _ID.stringValue).Length > 1)); }
public void ActionsMustBeExecutedInBackground() { var executer = new ActionExecutor(); executer.AddActionToQueue(() => { Thread.Sleep(Timeout.Infinite); }); executer.Execute(); Assert.True(true); }
protected override bool ExecuteCore(PackageItem item) { IVsPackageManager activePackageManager = GetActivePackageManager(); Debug.Assert(activePackageManager != null); using (activePackageManager.SourceRepository.StartOperation(OperationName, item.Id, item.Version)) { ShowProgressWindow(); // Resolve operations var resolver = new ActionResolver() { Logger = this, DependencyVersion = activePackageManager.DependencyVersion, IgnoreDependencies = false, AllowPrereleaseVersions = IncludePrerelease }; var projectManager = activePackageManager.GetProjectManager(_project); projectManager.Logger = this; resolver.AddOperation(PackageAction.Install, item.PackageIdentity, projectManager); var actions = resolver.ResolveActions(); // show license agreeement bool acceptLicense = ShowLicenseAgreement(actions); if (!acceptLicense) { return(false); } // execute operations try { RegisterPackageOperationEvents(activePackageManager, projectManager); var actionExecutor = new ActionExecutor() { Logger = this }; actionExecutor.Execute(actions); } finally { UnregisterPackageOperationEvents(activePackageManager, projectManager); } return(true); } }
/// <summary>The initialize.</summary> public virtual void Initialize() { this.levelUpdater = new ActionExecutor( () => { if (this.updateSleeper.Sleeping) { return; } this.updateSleeper.Sleep(200); this.Update(); }); this.levelUpdater.Subscribe(this.Skill.Owner.DataReceiver.Updates); }
public void Can_execute_cmd_without_bat_or_exe() { // setup var properties = new Dictionary<string, string>(); properties["rootDirectory"] = _testDirectory.FullName; var execute = new ActionExecutor(new ConsoleWriter(), new RunContext { Properties = properties }); File.WriteAllText(Path.Combine(_testDirectory.FullName, "test.txt"), "test"); Directory.CreateDirectory(Path.Combine(_testDirectory.FullName, "test")); // act execute.Execute(new Command { Value = "xcopy /f/i \"$(rootDirectory)/test.txt\" \"$(rootDirectory)/test/\"" }); // assert File.Exists(Path.Combine(_testDirectory.FullName, "test/test.txt")); }
private bool InstallSatellitePackages(IFileSystem fileSystem, List<IPackage> satellitePackages) { if (satellitePackages.Count == 0) { return false; } var packageManager = CreatePackageManager(fileSystem, AllowMultipleVersions); var executor = new ActionExecutor(); var operations = satellitePackages.Select(package => new Resolver.PackageSolutionAction(PackageActionType.AddToPackagesFolder, package, packageManager)); executor.Execute(operations); return true; }
private bool InstallSatellitePackages(IFileSystem packagesFolderFileSystem, ConcurrentQueue <IPackage> satellitePackages) { if (satellitePackages.Count == 0) { return(false); } var packageManager = CreatePackageManager(packagesFolderFileSystem, useSideBySidePaths: true); var executor = new ActionExecutor(); var operations = satellitePackages.Select(package => new Resolver.PackageSolutionAction(PackageActionType.AddToPackagesFolder, package, packageManager)); executor.Execute(operations); return(true); }
public void Can_execute_bat_without_cmd() { // setup var properties = new Dictionary<string, string>(); properties["rootDirectory"] = _testDirectory.FullName; var writer = new Mock<IConsoleWriter>(); writer.Setup(x => x.WriteError(It.IsAny<string>())); writer.Setup(x => x.WriteMessage(It.IsAny<string>())); var execute = new ActionExecutor(writer.Object, new RunContext { Properties = properties }); var srcFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestData/test.bat"); // act execute.Execute(new Command { Value = srcFile, dontUseCommandExe = true }); // assert writer.Verify(x => x.WriteMessage("\"test property " + _testDirectory.FullName + "\"")); }
public ActionMethodDispatcher(MethodInfo methodInfo) { _executor = GetExecutor(methodInfo); MethodInfo = methodInfo; }
public MyReflectedActionDescriptor(ReflectedActionDescriptor actionDescriptor) : base(actionDescriptor.MethodInfo, actionDescriptor.ActionName, actionDescriptor.ControllerDescriptor) { this.ActionExecutor = new ActionExecutor(actionDescriptor.MethodInfo); }
public ActionExecutor(IEnumerator enumerator,ActionExecutor parent=null) { this.enumerator = enumerator; this.parent = parent; }
public bool run() { bool flag; if (aborted) return false; object current = this.enumerator.Current; if(current is Action) { if((current as Action).isDone()) { flag = this.enumerator.MoveNext(); } else { return true; } } else if(current is IEnumerator) { this.parent = new ActionExecutor(this.enumerator, this.parent); this.enumerator = current as IEnumerator; return this.run(); } else { flag = this.enumerator.MoveNext(); } if (!flag&&this.parent!=null) { this.enumerator = this.parent.enumerator; this.parent = this.parent.parent; return this.enumerator.MoveNext(); } return flag; }
public static Action excuteAction(IEnumerator enumerator) { ActionExecutor actionExecutor = new ActionExecutor(enumerator); Instance.executorList.Add (actionExecutor); return actionExecutor; }
public ActionMethodDispatcher(MethodInfo methodInfo) { _executor = GetExecutor(methodInfo); MethodInfo = methodInfo; ParameterTypes = methodInfo.GetParameters().Select(x => x.ParameterType).ToList().AsReadOnly(); }
public void When_invoking_power_shell_with_errors_exception_is_thrown() { // setup var executor = new ActionExecutor(new ConsoleWriter(), new RunContext()); var srcFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestData/PSTestError.ps1"); // act try { executor.Execute(new PowerShell { Value = srcFile }); } catch { return; } Assert.Fail("An error wasn't thrown"); }
public void When_invoking_power_shell_script_through_workflow_should_create_folders_as_directed_by_script() { // setup var properties = new Dictionary<string, string>(); properties["rootDirectory"] = _testDirectory.FullName; var executor = new ActionExecutor(new ConsoleWriter(), new RunContext { Properties = properties }); var srcFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestData/PSTestCreateFolders.ps1"); // act executor.Execute(new PowerShell { Value = srcFile }); // assert Assert.IsTrue(Directory.Exists(Path.Combine(_testDirectory.FullName, "TestFolder")), "TestFolder Creation Failed"); Assert.IsTrue(Directory.Exists(Path.Combine(_testDirectory.FullName, "TestFolder\\TestFolder2")), "TestFolder\\TestFolder2 Creation Failed"); }