コード例 #1
0
        public ICommandResult Handle(AvailableServerCommand command)
        {
            command.Validate();
            if (command.IsInvalid)
            {
                return(new DefaultCommandResult(CommandResultStatus.InvalidCommand, command.Notifications));
            }

            try
            {
                var server = _serverRepository.GetById(command.ServerId);
                if (server == null)
                {
                    return(new DefaultCommandResult(CommandResultStatus.InvalidData, "Nenhum servidor foi localizado"));
                }

                if (server.ResponseInIPAndPort(command.Ip, command.Port))
                {
                    return(new DefaultCommandResult(CommandResultStatus.Success, "Servidor online"));
                }


                return(new DefaultCommandResult(CommandResultStatus.InvalidData, "Servidor offiline"));
            }
            catch (Exception e)
            {
                Console.WriteLine($"Fail to execute AvailableServerHandler. Fail stack ===> {e.ToString()}");
                return(new DefaultCommandResult(CommandResultStatus.Exception));
            }
        }
コード例 #2
0
        public void Should_Be_Exception_Fail()
        {
            _serverHandler = new ServerHandler(new FakeExectionServerRepository());
            var command         = new AvailableServerCommand(Guid.NewGuid(), "10.1.1.1", 8080);
            var handlerResponse = (DefaultCommandResult)_serverHandler.Handle(command);

            Assert.True(handlerResponse.IsException);
        }
コード例 #3
0
        public void Given_A_Valid_Command_With_Existless_Server_Id_Should_Be_Return_A_Invalid_Data_Status()
        {
            _serverHandler = new ServerHandler(new FakeServerRepository(_dataContextMock));
            var commandForOnlineServer = new AvailableServerCommand(Guid.NewGuid(), "10.1.1.1", 8080);
            var handlerResponse        = (DefaultCommandResult)_serverHandler.Handle(commandForOnlineServer);

            Assert.True(handlerResponse.IsInvalidData);
        }
コード例 #4
0
        public void Given_A_Invalid_Command_Should_Be_Return_A_Invalid_Command_Status()
        {
            _serverHandler = new ServerHandler(new FakeServerRepository(_dataContextMock));
            var invalidCommand  = new AvailableServerCommand(new Guid(), "", 0);
            var handlerResponse = (DefaultCommandResult)_serverHandler.Handle(invalidCommand);

            Assert.True(handlerResponse.IsInvalidCommand);
        }
コード例 #5
0
        public void Should_Be_Return_A_Offline_Server()
        {
            _serverHandler = new ServerHandler(new FakeServerRepository(_dataContextMock));
            var serverMock = _dataContextMock.Servers.FirstOrDefault();
            var commandForOfflineServer = new AvailableServerCommand(serverMock.Id, "xxxx", 99999);
            var handlerResponse         = (DefaultCommandResult)_serverHandler.Handle(commandForOfflineServer);

            Assert.True(handlerResponse.IsInvalidData);
        }
コード例 #6
0
        public void Should_Be_Return_A_Online_Server()
        {
            _serverHandler = new ServerHandler(new FakeServerRepository(_dataContextMock));
            var serverMock             = _dataContextMock.Servers.FirstOrDefault();
            var commandForOnlineServer = new AvailableServerCommand(serverMock.Id, serverMock.Ip, serverMock.Port);

            var handlerResponse = (DefaultCommandResult)_serverHandler.Handle(commandForOnlineServer);

            Assert.True(handlerResponse.IsSuccess);
        }
コード例 #7
0
        /// <summary>
        ///     Creates a message by type.
        /// </summary>
        public override PiranhaMessage CreateMessageByType(int type)
        {
            PiranhaMessage message = null;

            if (type < 20000)
            {
                switch (type)
                {
                case 10100:
                {
                    message = new ClientHelloMessage();
                    break;
                }

                case 10101:
                {
                    message = new LoginMessage();
                    break;
                }

                case 10108:
                {
                    message = new KeepAliveMessage();
                    break;
                }

                case 10113:
                {
                    message = new SetDeviceTokenMessage();
                    break;
                }

                case 10116:
                {
                    message = new ResetAccountMessage();
                    break;
                }

                case 10117:
                {
                    message = new ReportUserMessage();
                    break;
                }

                case 10118:
                {
                    message = new AccountSwitchedMessage();
                    break;
                }

                case 10150:
                {
                    message = new AppleBillingRequestMessage();
                    break;
                }

                case 10212:
                {
                    message = new ChangeAvatarNameMessage();
                    break;
                }

                case 14101:
                {
                    message = new GoHomeMessage();
                    break;
                }

                case 14102:
                {
                    message = new EndClientTurnMessage();
                    break;
                }

                case 14134:
                {
                    message = new AttackNpcMessage();
                    break;
                }

                case 14262:
                {
                    message = new BindGoogleServiceAccountMessage();
                    break;
                }

                case 14325:
                {
                    message = new AskForAvatarProfileMessage();
                    break;
                }

                case 14715:
                {
                    message = new SendGlobalChatLineMessage();
                    break;
                }
                }
            }
            else
            {
                switch (type)
                {
                case 20000:
                {
                    message = new ExtendedSetEncryptionMessage();
                    break;
                }

                case 20100:
                {
                    message = new ServerHelloMessage();
                    break;
                }

                case 20103:
                {
                    message = new LoginFailedMessage();
                    break;
                }

                case 20104:
                {
                    message = new LoginOkMessage();
                    break;
                }

                case 20108:
                {
                    message = new KeepAliveServerMessage();
                    break;
                }

                case 20117:
                {
                    message = new ReportUserStatusMessage();
                    break;
                }

                case 20151:
                {
                    message = new AppleBillingProcessedByServerMessage();
                    break;
                }

                case 20161:
                {
                    message = new ShutdownStartedMessage();
                    break;
                }

                case 20171:
                {
                    message = new PersonalBreakStartedMessage();
                    break;
                }

                case 20261:
                {
                    message = new GoogleServiceAccountBoundMessage();
                    break;
                }

                case 20262:
                {
                    message = new GoogleServiceAccountAlreadyBoundMessage();
                    break;
                }

                case 24101:
                {
                    message = new OwnHomeDataMessage();
                    break;
                }

                case 24104:
                {
                    message = new OutOfSyncMessage();
                    break;
                }

                case 24111:
                {
                    message = new AvailableServerCommand();
                    break;
                }

                case 24112:
                {
                    message = new WaitingToGoHomeMessage();
                    break;
                }

                case 24115:
                {
                    message = new ServerErrorMessage();
                    break;
                }

                case 24133:
                {
                    message = new NpcDataMessage();
                    break;
                }

                case 24334:
                {
                    message = new AvatarProfileMessage();
                    break;
                }

                case 24411:
                {
                    message = new AvatarStreamMessage();
                    break;
                }

                case 24715:
                {
                    message = new GlobalChatLineMessage();
                    break;
                }
                }
            }

            return(message);
        }
コード例 #8
0
        public IActionResult Delete([FromServices] ServerHandler handler, [FromRoute] Guid serverId, [FromBody] AvailableServerCommand command)
        {
            command.ServerId = serverId;
            var response = (DefaultCommandResult)handler.Handle(command);

            return(this.DefaultCommandResultToActionResult(response));
        }