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()); }
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 })); }