private static void UnmarshallResult(XmlUnmarshallerContext context, CreateRuleResponse response) { int originalDepth = context.CurrentDepth; int targetDepth = originalDepth + 1; if (context.IsStartOfDocument) { targetDepth += 2; } while (context.ReadAtDepth(originalDepth)) { if (context.IsStartElement || context.IsAttribute) { if (context.TestExpression("Rules/member", targetDepth)) { var unmarshaller = RuleUnmarshaller.Instance; var item = unmarshaller.Unmarshall(context); response.Rules.Add(item); continue; } } } return; }
/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { CreateRuleResponse response = new CreateRuleResponse(); context.Read(); int targetDepth = context.CurrentDepth; while (context.ReadAtDepth(targetDepth)) { if (context.TestExpression("ChangeToken", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.ChangeToken = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Rule", targetDepth)) { var unmarshaller = RuleUnmarshaller.Instance; response.Rule = unmarshaller.Unmarshall(context); continue; } } return(response); }
//创建一个完整的规则,订阅的Topic是系统类型(平台内置的) public void TestCreateRuleAboutSystemTopic() { DefaultAcsClient acsClient = Demo.IotClient.GetClient(); CreateRuleRequest request = new CreateRuleRequest(); //Topic名称不能同名 request.Name = "Rule_Property_Topic_0826"; request.ProductKey = "<productKey>"; //使用通配符,订阅全部设备的 request.ShortTopic = "+/thing/event/property/post"; //自定义Topic request.TopicType = 0; request.Select = "*"; request._Where = " 1=1 "; request.DataType = "JSON"; request.RuleDesc = "This is a test."; CreateRuleResponse response = acsClient.GetAcsResponse(request); Console.WriteLine("Create Rule: " + response.Success); if (!(bool)response.Success) { Console.WriteLine(response.Code + ", " + response.ErrorMessage); return; } Console.WriteLine("Rule: " + response.RuleId); }
/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context) { CreateRuleResponse response = new CreateRuleResponse(); context.Read(); int targetDepth = context.CurrentDepth; while (context.ReadAtDepth(targetDepth)) { if (context.IsStartElement) { if (context.TestExpression("CreateRuleResult", 2)) { UnmarshallResult(context, response); continue; } if (context.TestExpression("ResponseMetadata", 2)) { response.ResponseMetadata = ResponseMetadataUnmarshaller.Instance.Unmarshall(context); } } } return(response); }
public static CreateRuleResponse Unmarshall(UnmarshallerContext _ctx) { CreateRuleResponse createRuleResponse = new CreateRuleResponse(); createRuleResponse.HttpResponse = _ctx.HttpResponse; createRuleResponse.Code = _ctx.StringValue("CreateRule.Code"); createRuleResponse.Success = _ctx.BooleanValue("CreateRule.Success"); createRuleResponse.Message = _ctx.StringValue("CreateRule.Message"); createRuleResponse.RequestId = _ctx.StringValue("CreateRule.RequestId"); CreateRuleResponse.CreateRule_Model model = new CreateRuleResponse.CreateRule_Model(); model.CreateTime = _ctx.LongValue("CreateRule.Model.CreateTime"); model.ModifyTime = _ctx.LongValue("CreateRule.Model.ModifyTime"); model.TenantId = _ctx.StringValue("CreateRule.Model.TenantId"); model.RuleName = _ctx.StringValue("CreateRule.Model.RuleName"); model.RuleRId = _ctx.StringValue("CreateRule.Model.RuleRId"); model.RuleType = _ctx.StringValue("CreateRule.Model.RuleType"); model.RelatedAdSlots = _ctx.StringValue("CreateRule.Model.RelatedAdSlots"); model.RuleConfig = _ctx.StringValue("CreateRule.Model.RuleConfig"); model.Status = _ctx.StringValue("CreateRule.Model.Status"); model.AccessStatus = _ctx.StringValue("CreateRule.Model.AccessStatus"); model.ExtInfo = _ctx.StringValue("CreateRule.Model.ExtInfo"); model.Version = _ctx.LongValue("CreateRule.Model.Version"); model.RuleId = _ctx.StringValue("CreateRule.Model.RuleId"); createRuleResponse.Model = model; return(createRuleResponse); }
//创建一个完整的规则,订阅的Topic是自定义类型(自己创建的) public void TestCreateRuleAboutUserTopic() { DefaultAcsClient acsClient = Demo.IotClient.GetClient(); CreateRuleRequest request = new CreateRuleRequest(); //Topic名称不能同名 request.Name = "Rule_User_Topic_0826"; request.ProductKey = "<productKey>"; request.ShortTopic = "firstDevice/user/update"; //自定义Topic request.TopicType = 1; request.Select = "*"; request._Where = " 1=1 "; request.DataType = "JSON"; request.RuleDesc = "This is a test."; CreateRuleResponse response = acsClient.GetAcsResponse(request); Console.WriteLine("Create Rule: " + response.Success); if (!(bool)response.Success) { Console.WriteLine(response.Code + ", " + response.ErrorMessage); return; } Console.WriteLine("Rule: " + response.RuleId); }
public static CreateRuleResponse Unmarshall(UnmarshallerContext context) { CreateRuleResponse createRuleResponse = new CreateRuleResponse(); createRuleResponse.HttpResponse = context.HttpResponse; createRuleResponse.RequestId = context.StringValue("CreateRule.RequestId"); return(createRuleResponse); }
/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { CreateRuleResponse response = new CreateRuleResponse(); context.Read(); int targetDepth = context.CurrentDepth; while (context.ReadAtDepth(targetDepth)) { if (context.TestExpression("Description", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.Description = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Identifier", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.Identifier = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("ResourceTags", targetDepth)) { var unmarshaller = new ListUnmarshaller <ResourceTag, ResourceTagUnmarshaller>(ResourceTagUnmarshaller.Instance); response.ResourceTags = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("ResourceType", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.ResourceType = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("RetentionPeriod", targetDepth)) { var unmarshaller = RetentionPeriodUnmarshaller.Instance; response.RetentionPeriod = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Status", targetDepth)) { var unmarshaller = StringUnmarshaller.Instance; response.Status = unmarshaller.Unmarshall(context); continue; } if (context.TestExpression("Tags", targetDepth)) { var unmarshaller = new ListUnmarshaller <Tag, TagUnmarshaller>(TagUnmarshaller.Instance); response.Tags = unmarshaller.Unmarshall(context); continue; } } return(response); }
public static CreateRuleResponse Unmarshall(UnmarshallerContext context) { CreateRuleResponse createRuleResponse = new CreateRuleResponse(); createRuleResponse.HttpResponse = context.HttpResponse; createRuleResponse.RequestId = context.StringValue("CreateRule.RequestId"); createRuleResponse.Success = context.BooleanValue("CreateRule.Success"); createRuleResponse.ErrorMessage = context.StringValue("CreateRule.ErrorMessage"); createRuleResponse.RuleId = context.LongValue("CreateRule.RuleId"); return(createRuleResponse); }
public static CreateRuleResponse Unmarshall(UnmarshallerContext _ctx) { CreateRuleResponse createRuleResponse = new CreateRuleResponse(); createRuleResponse.HttpResponse = _ctx.HttpResponse; createRuleResponse.Code = _ctx.StringValue("CreateRule.Code"); createRuleResponse.Message = _ctx.StringValue("CreateRule.Message"); createRuleResponse.RequestId = _ctx.StringValue("CreateRule.RequestId"); CreateRuleResponse.CreateRule_Data data = new CreateRuleResponse.CreateRule_Data(); data.Content = _ctx.StringValue("CreateRule.Data.Content"); data.Id = _ctx.StringValue("CreateRule.Data.Id"); data.Name = _ctx.StringValue("CreateRule.Data.Name"); createRuleResponse.Data = data; return(createRuleResponse); }
public static CreateRuleResponse Unmarshall(UnmarshallerContext _ctx) { CreateRuleResponse createRuleResponse = new CreateRuleResponse(); createRuleResponse.HttpResponse = _ctx.HttpResponse; createRuleResponse.Code = _ctx.StringValue("CreateRule.code"); createRuleResponse.RequestId = _ctx.StringValue("CreateRule.requestId"); createRuleResponse.Message = _ctx.StringValue("CreateRule.message"); CreateRuleResponse.CreateRule_Result result = new CreateRuleResponse.CreateRule_Result(); result.GmtModified = _ctx.StringValue("CreateRule.Result.gmtModified"); result.GmtCreate = _ctx.StringValue("CreateRule.Result.gmtCreate"); result.RuleId = _ctx.StringValue("CreateRule.Result.ruleId"); result.Status = _ctx.StringValue("CreateRule.Result.status"); createRuleResponse.Result = result; return(createRuleResponse); }
//创建一个简单的规则,不设置处理规则(不指定规则订阅的topic) public void TestCreateSimpleRule() { DefaultAcsClient acsClient = Demo.IotClient.GetClient(); CreateRuleRequest request = new CreateRuleRequest(); request.Name = "Rule_JSON_0826"; request.DataType = "JSON"; request.RuleDesc = "This is a test."; CreateRuleResponse response = acsClient.GetAcsResponse(request); Console.WriteLine("Create Rule: " + response.Success); if (!(bool)response.Success) { Console.WriteLine(response.Code + ", " + response.ErrorMessage); return; } Console.WriteLine("Rule: " + response.RuleId); }
public async Task <Guid> CreatAsync(Guid groupId, int index, string pattern, SourceTypeEnum sourceType, DestinationTypeEnum destinationType = DestinationTypeEnum.Any) { CreateRuleRequest request = new CreateRuleRequest { Index = index, Pattern = pattern, SourceType = sourceType, DestinationType = destinationType, GroupId = groupId }; HttpResponseMessage response = await client.PostAsJsonAsync( controllerPath, request); if (response.IsSuccessStatusCode) { CreateRuleResponse rule = await response.Content.ReadAsAsync <CreateRuleResponse>(); return(rule.Id); } else { throw new UnauthorizedAccessException($"Unauthorized rule creation at index '{index}' for group '{groupId}'"); } }