Example #1
0
        public async Task <ActionResult <CommandTemplate> > GetCommandDetails(string command)
        {
            var res = new AuthorizationDetails("de", command);
            var authorizationResult = await _authorizationService.AuthorizeAsync(User, res, "OpcoPolicy");

            if (!authorizationResult.Succeeded)
            {
                return(Forbid());
            }
            if (!_commandManagementService.CommandExists(command))
            {
                return(NotFound());
            }

            return(Ok(_commandManagementService.GetCommandTemplate(command)));
        }
        public async Task <ActionResult <CommandSendModel> > PostCommandAsync(string id, string command, [FromBody] JObject parameters, [FromQuery] int ttl = 90, [FromQuery] bool checktypes = false, [FromQuery] bool checkmandatory = false, [FromQuery] bool checkvalues = false)
        {
            if (!_commandManagementService.CommandExists(command))
            {
                return(NotFound($"Command '{command}' doesn't exist."));
            }
            var response = _commandManagementService.CreateCommandDocument(new CreateCommandDocumentRequest()
            {
                Command = command, Body = parameters, TTL = ttl, CheckTypes = checktypes, CheckRequired = checkmandatory
            });

            if (!response.Success)
            {
                return(BadRequest("Invalid command request. " + response.ErrorText));
            }
            var result = await _commandSendService.SendCommandToDeviceAsync(id, response.Document);

            return(result);
        }