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 });; }
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 })); }
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 })); } }
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 })
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)); }
public abstract Task <TaskActionOutput> ExecuteAsync(TaskActionInput _input);