Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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());
        }