/// <summary>
 /// Push the current environment status to clients.
 /// </summary>
 public void PushStatus()
 {
     var command = new EnvironmentCommand { Command = EnvironmentCommands.Status }.ToPostUrl();
     var client = new RestClient(Host);
     var request = new RestRequest(command, Method.POST);
     client.ExecuteAsync(request, response => {});
 }
Пример #2
0
 public TexoCommand(
     IEnvironmentService environment,
     IInputHistoryService history)
 {
     this.environment = new EnvironmentCommand(environment);
     this.history     = new HistoryCommand(history);
 }
        /// <summary>
        /// Process environment commands.
        /// </summary>
        /// <param name="request">The request.</param>
        public void Post(EnvironmentCommand request)
        {
            switch (request.Command)
            {
                case EnvironmentCommands.Start:
                    GameController.Start();
                    break;

                case EnvironmentCommands.Reset:
                    GameController.Reset();
                    break;
            }

            var status = GameController.GetEnvironmentStatus();
            switch (status.Item1)
            {
                case EnvironmentStatus.Registering:
                    ServerEvents.NotifyAll(new GetReadyMessage { Dragons = status.Item3 });
                    break;

                case EnvironmentStatus.Active:
                    ServerEvents.NotifyChannel("player", new EnvironmentStatusMessage { Status = status.Item1, Dragons = status.Item3 });
                    break;
            }

            ServerEvents.NotifyAll(new EnvironmentStatusMessage { Status = status.Item1, Dragons = status.Item3 });
        }