コード例 #1
0
        /// <inheritdoc />
        public override async Task GetAsync()
        {
            long id = 0;

            //if (!long.TryParse(request.PathSegments.Last(), out id))
            if (!ValueBag.TryGet("id", out id))
            {
                await Request.RespondAsync("Invalid block ID", HttpStatusCode.BadRequest);

                return;
            }

            TerminalBlock block = null;
            await Torch.InvokeAsync(() =>
            {
                MyAPIGateway.Entities.TryGetEntityById(id, out IMyEntity entity);
                if (entity is IMyTerminalBlock terminalBlock)
                {
                    block = new TerminalBlock(terminalBlock, false);
                }
            });

            if (block != null)
            {
                await Request.RespondAsync(block, HttpStatusCode.OK);

                return;
            }

            await Request.RespondAsync("Block not found", HttpStatusCode.NotFound);
        }
コード例 #2
0
        public (long Id, string Property) GetValues()
        {
            ValueBag.TryGet("property", out string prop);
            ValueBag.TryGet("id", out long id);

            return(id, prop);
        }
コード例 #3
0
        /// <inheritdoc />
        public override async Task GetAsync()
        {
            long id = 0;

            //if (!long.TryParse(request.PathSegments.Last(), out id))
            if (!ValueBag.TryGet("id", out id))
            {
                await Request.RespondAsync("Invalid grid ID", HttpStatusCode.BadRequest);

                return;
            }

            Grid grid = null;
            await Torch.InvokeAsync(() =>
            {
                MyAPIGateway.Entities.TryGetEntityById(id, out IMyEntity entity);
                if (entity is IMyCubeGrid cubeGrid)
                {
                    grid = new Grid(cubeGrid);
                }
            });

            if (grid != null)
            {
                await Request.RespondAsync(grid, HttpStatusCode.OK);

                return;
            }

            await Request.RespondAsync("Grid not found", HttpStatusCode.NotFound);
        }
コード例 #4
0
        /// <inheritdoc />
        public override async Task PostAsync()
        {
            long   id;
            string actionName;

            if (!(ValueBag.TryGet("id", out id) && ValueBag.TryGet("action", out actionName)))
            {
                await Request.RespondAsync("Invalid parameters.", HttpStatusCode.BadRequest);

                return;
            }

            await Torch.InvokeAsync(() =>
            {
                MyAPIGateway.Entities.TryGetEntityById(id, out IMyEntity entity);
                if (entity is IMyTerminalBlock terminalBlock && terminalBlock.HasAction(actionName))
                {
                    terminalBlock.ApplyAction(actionName);
                }
            });

            await Request.RespondAsync(null, HttpStatusCode.OK);
        }