public ChangedAPIResponseBO Diff(OpenApiResponses left, OpenApiResponses right, DiffContextBO context) { var responseMapKeyDiff = MapKeyDiff <string, OpenApiResponse> .Diff(left, right); var sharedResponseCodes = responseMapKeyDiff.SharedKey; var responses = new Dictionary <string, ChangedResponseBO>(); foreach (var responseCode in sharedResponseCodes) { var diff = _openApiDiff .ResponseDiff .Diff(left[responseCode], right[responseCode], context); if (diff != null) { responses.Add(responseCode, diff); } } var changedApiResponse = new ChangedAPIResponseBO(left, right, context) { Increased = responseMapKeyDiff.Increased, Missing = responseMapKeyDiff.Missing, Changed = responses, Extensions = _openApiDiff .ExtensionsDiff .Diff(left.Extensions, right.Extensions, context) }; return(ChangedUtils.IsChanged(changedApiResponse)); }
private static string UlResponse(ChangedAPIResponseBO changedApiResponse) { var addResponses = changedApiResponse.Increased; var delResponses = changedApiResponse.Missing; var changedResponses = changedApiResponse.Changed; var sb = new StringBuilder(); foreach (var propName in addResponses.Keys) { sb.Append(ItemResponse("Add ", propName)); } foreach (var propName in delResponses.Keys) { sb.Append(ItemResponse("Deleted ", propName)); } foreach (var propName in changedResponses.Keys) { sb.Append(ItemChangedResponse("Changed ", propName, changedResponses[propName])); } return(sb.ToString()); }