コード例 #1
0
        private async Task <TaskActionOutput> SendData(TaskActionInput input)
        {
            try
            {
                if (input.Input.Contains("ValueKind"))
                {
                    JObject o      = JsonConvert.DeserializeObject(input.Input) as JObject;
                    var     config = JsonConvert.DeserializeObject <ModelExecutorConfig>(input.ExecutorConfig);
                    var     dd     = o.Properties().Select(c => new ParamObject {
                        keyName = c.Name, value = JPropertyToObject(c.Value.First as JProperty)
                    }).ToList();
                    string contentType = "application/json";
                    var    restclient  = new RestClient(config.BaseUrl);
                    var    request     = new RestRequest(config.Url + (input.DeviceId == Guid.Empty ? "" : "/" + input.DeviceId), Method.POST);
                    request.AddHeader("X-Access-Token",
                                      config.Token);
                    request.RequestFormat = DataFormat.Json;
                    request.AddHeader("cache-control", "no-cache");
                    request.AddJsonBody(JsonConvert.SerializeObject(dd));
                    var response = await restclient.ExecuteAsync(request);

                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        var result = JsonConvert.DeserializeObject <MessagePullResult>(response.Content);
                        if (result is { success : true })
                        {
                            return(new TaskActionOutput()
                            {
                                ExecutionInfo = response.Content, ExecutionStatus = result.success, DynamicOutput = input.DynamicInput
                            });;
                        }
コード例 #2
0
        public override Task <TaskActionOutput> ExecuteAsync(TaskActionInput _input)
        {
            var msg      = _input.DynamicInput;
            var playload = System.Text.Encoding.Default.GetString(Convert.FromBase64String(msg.Payload));

            return(Task.FromResult(new TaskActionOutput()
            {
                Output = playload, DeviceId = _input.DeviceId
            }));
        }
コード例 #3
0
        public override Task <TaskActionOutput> ExecuteAsync(TaskActionInput input)
        {
            try
            {
                //    var cache = this.ServiceProvider.GetService(typeof(IMemoryCache)) as IMemoryCache;

                return(SendData(input));
            }
            catch (Exception ex)
            {
                return(Task.FromResult(new TaskActionOutput()
                {
                    ExecutionInfo = ex.Message, ExecutionStatus = false
                }));
            }
        }
コード例 #4
0
        public override async Task <TaskActionOutput> ExecuteAsync(TaskActionInput input)
        {
            var    config      = JsonConvert.DeserializeObject <ModelExecutorConfig>(input.ExecutorConfig);
            string contentType = "application/json";
            var    restclient  = new RestClient(config.BaseUrl);

            var request = new RestRequest(config.Url + (input.DeviceId == Guid.Empty ? "" : "/" + input.DeviceId), Method.POST);

            request.AddHeader("X-Access-Token",
                              config.Token);
            request.RequestFormat = DataFormat.Json;
            request.AddHeader("Content-Type", contentType);
            request.AddHeader("cache-control", "no-cache");
            request.AddJsonBody(JsonConvert.SerializeObject(new{ sosType = "1", sosContent = input.Input, usingUserId = "" }));
            var response = await restclient.ExecuteAsync(request);

            if (response.StatusCode == HttpStatusCode.OK)
            {
                var result = JsonConvert.DeserializeObject <DeviceActionResult>(response.Content);
                if (result is { success : true })
コード例 #5
0
        public override Task <TaskActionOutput> ExecuteAsync(TaskActionInput param)
        {
            var result = new TaskActionOutput()
            {
                DynamicOutput = new { code = ApiCode.Success, msg = "OK" }
            };

            try
            {
                var msg = new RawMsg()
                {
                    MsgType = MsgType.CoAP, MsgBody = JToken.Parse(param.Input)?.JsonToDictionary(), DataCatalog = DataCatalog.AttributeData, DataSide = DataSide.ClientSide, DeviceId = param.DeviceId
                };
                if (msg.DeviceId != Guid.Empty && msg.MsgBody?.Count > 0)
                {
                    _queue.PublishAttributeData(msg);
                }
            }
            catch (Exception ex)
            {
                result.DynamicOutput = new { code = ApiCode.Exception, msg = ex.Message };
            }
            return(Task.FromResult(result));
        }
コード例 #6
0
 public abstract Task <TaskActionOutput> ExecuteAsync(TaskActionInput _input);