public MessageHandlerMethodDispatcher(MethodInfo methodInfo, Type handledMessageType)
 {
     _executor = GetExecutor(methodInfo);
     MethodInfo = methodInfo;
     ParameterTypes = methodInfo.GetParameters().Select(x => x.ParameterType).ToList().AsReadOnly();
     HandledMessageType = handledMessageType;
 }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        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());
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        public void MoveWrongDirection()
        {
            var invalidDirection = "top left";

            var actionExecutor = new ActionExecutor(_messageProvider.Object, _playerState);
            var result         = actionExecutor.Move(invalidDirection);

            Assert.That(result, Is.False);
        }
Esempio n. 6
0
        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();
            }
        }
Esempio n. 8
0
 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");
 }
Esempio n. 9
0
        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 */));
        }
Esempio n. 11
0
 /// <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);
 }
Esempio n. 12
0
 public override void ActionWhenChoose()
 {
     Console.Clear();
     if (ActionExecutor != null)
     {
         ActionExecutor.Invoke();
         Messages.pressAnyKey();
         Console.Clear();
         MenuThatItemBelongsTo.Show();
     }
 }
Esempio n. 13
0
        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));
        }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
 /// <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);
     }
 }
Esempio n. 16
0
 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;
 }
Esempio n. 17
0
        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());
        }
Esempio n. 18
0
        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;
            }
        }
Esempio n. 19
0
 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);
        }
Esempio n. 22
0
        public SessionManagerControl(FeedbackViewModel feedbackViewModel,
                                     ActionExecutor actionExec,
                                     ISettingsStore settingsStore)
        {
            DataContext        = feedbackViewModel;
            _feedbackViewModel = feedbackViewModel;
            _actionExec        = actionExec;
            _feedbackViewModel.ConfirmationRequest.Raised += new ConfirmationRequestHandler(this).Handle;

            _settingsStore = settingsStore;

            InitializeComponent();
        }
Esempio n. 23
0
        /// <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);
        }
Esempio n. 24
0
 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);
 }
Esempio n. 25
0
 /// <summary>
 /// Fires the event.
 /// </summary>
 public override void Fire()
 {
     try
     {
         executor = Grabber.Instance.PutDown();
         executor.Start();
         Pose.Instance.TakeStableArmPosition();
         ReportSuccess();
     }
     catch {
         ReportFailure();
     }
 }
Esempio n. 26
0
    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));
    }
Esempio n. 27
0
        public void ActionsMustBeExecutedInBackground()
        {
            var executer = new ActionExecutor();

            executer.AddActionToQueue(() =>
            {
                Thread.Sleep(Timeout.Infinite);
            });

            executer.Execute();

            Assert.True(true);
        }
Esempio n. 28
0
        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);
            }
        }
Esempio n. 29
0
        /// <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);
 }
Esempio n. 36
0
 public ActionExecutor(IEnumerator enumerator,ActionExecutor parent=null)
 {
     this.enumerator = enumerator;
     this.parent = parent;
 }
Esempio n. 37
0
        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;
        }
Esempio n. 38
0
 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");
        }