Esempio n. 1
0
        private static string ItemContent(string title, string contentType, ChangedMediaTypeBO changedMediaType,
                                          bool isRequest)
        {
            var sb = new StringBuilder();

            sb.Append(ItemContent(title, contentType))
            .Append(new string(' ', 10))
            .Append("Schema: ")
            .Append(changedMediaType.IsCompatible() ? "Backward compatible" : "Broken compatibility")
            .Append(Environment.NewLine);
            if (!changedMediaType.IsCompatible())
            {
                sb.Append(Incompatibilities(changedMediaType.Schema));
            }
            return(sb.ToString());
        }
Esempio n. 2
0
        public ChangedContentBO Diff(IDictionary <string, OpenApiMediaType> left,
                                     IDictionary <string, OpenApiMediaType> right, DiffContextBO context)
        {
            var leftDict  = (Dictionary <string, OpenApiMediaType>)left;
            var rightDict = (Dictionary <string, OpenApiMediaType>)right;


            var mediaTypeDiff = MapKeyDiff <string, OpenApiMediaType> .Diff(leftDict, rightDict);

            var sharedMediaTypes  = mediaTypeDiff.SharedKey;
            var changedMediaTypes = new Dictionary <string, ChangedMediaTypeBO>();

            foreach (var sharedMediaType in sharedMediaTypes)
            {
                var oldMediaType     = left[sharedMediaType];
                var newMediaType     = right[sharedMediaType];
                var changedMediaType =
                    new ChangedMediaTypeBO(oldMediaType?.Schema, newMediaType?.Schema, context)
                {
                    Schema = _openApiDiff
                             .SchemaDiff
                             .Diff(
                        oldMediaType?.Schema,
                        newMediaType?.Schema,
                        context.CopyWithRequired(true))
                };
                if (!ChangedUtils.IsUnchanged(changedMediaType))
                {
                    changedMediaTypes.Add(sharedMediaType, changedMediaType);
                }
            }

            return(ChangedUtils.IsChanged(new ChangedContentBO(leftDict, rightDict, context)
            {
                Increased = mediaTypeDiff.Increased,
                Missing = mediaTypeDiff.Missing,
                Changed = changedMediaTypes
            }));
        }