Exemple #1
0
        public IActionResult Put(Guid id, [FromBody] RunningStatusModel model)
        {
            var observations = _observationService.GetObservations();
            var old          = observations.FirstOrDefault(it => it.Id == id);

            old.RunningStatus = model.Status;
            _observationService.Update(old);
            return(Ok(new MethodResult()
            {
                IsSuccessful = true, Message = "Update status successfully."
            }));
        }
Exemple #2
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="ProxyServerStatusModule"/> class.
        /// </summary>
        /// <param name="stumpsHost">The <see cref="IStumpsHost"/> used by the instance.</param>
        /// <exception cref="ArgumentNullException"><paramref name="stumpsHost"/> is <c>null</c>.</exception>
        public ProxyServerStatusModule(IStumpsHost stumpsHost)
        {
            stumpsHost = stumpsHost ?? throw new ArgumentNullException(nameof(stumpsHost));

            Get["/api/proxy/{serverId}/status"] = _ =>
            {
                var serverId = (string)_.serverId;
                var server   = stumpsHost.FindServer(serverId);

                var model = new RunningStatusModel
                {
                    IsRunning = server.IsRunning
                };

                return(Response.AsJson(model));
            };

            Put["/api/proxy/{serverId}/status"] = _ =>
            {
                var serverId    = (string)_.serverId;
                var environment = stumpsHost.FindServer(serverId);

                var model = this.Bind <RunningStatusModel>();

                if (model.IsRunning && !environment.IsRunning)
                {
                    stumpsHost.Start(serverId);
                }
                else if (!model.IsRunning && environment.IsRunning)
                {
                    stumpsHost.Shutdown(serverId);
                }

                return(Response.AsJson(model));
            };
        }