public static async void Compare(ResponseBody body1, ResponseBody body2, bool isCompareValue) { var itemStr1 = body1.Content?.Value as string; var itemStr2 = body2.Content?.Value as string; if ((itemStr1 != null) && (itemStr2 != null)) { if (isCompareValue) { body1.Content.State = itemStr1 != itemStr2 ? StateEnum.ValueUnequal : StateEnum.ValueEqual; } } else if (body1.Content?.Value is StateNode && body2.Content?.Value is StateNode) { if (isCompareValue) { var node1 = (StateNode)body1.Content.Value; var node2 = (StateNode)body2.Content.Value; await StateNode.CompareAsync(node1, node2, true); } } else { if (body1.Content != null) { body1.Content.State = StateEnum.ValueUnequal; } } }
public static async void Compare(RequestBody body1, RequestBody body2, bool isCompareValue) { foreach (var item1 in body1.Content) { if (body2.Content.ContainsKey(item1.Key)) { item1.Value.State = StateEnum.PropertyExisted; if (isCompareValue) { var itemStr1 = item1.Value.Value as string; var itemStr2 = body2.Content[item1.Key].Value as string; if ((itemStr1 != null) && (itemStr2 != null)) { item1.Value.State = itemStr1 != (string)body2.Content[item1.Key].Value ? StateEnum.ValueUnequal : StateEnum.ValueEqual; } else if (item1.Value.Value is StateNode && body2.Content[item1.Key].Value is StateNode) { item1.Value.State = StateEnum.ValueEqual; var node1 = (StateNode)item1.Value.Value; var node2 = (StateNode)body2.Content[item1.Key].Value; await StateNode.CompareAsync(node1, node2, true); } else { item1.Value.State = StateEnum.ValueUnequal; } } } else { item1.Value.State = StateEnum.PropertyMissing; } } }