예제 #1
0
 public void RemovePathParameters(Dictionary <string, string> pathParameters, ChangedParametersBO parameters)
 {
     foreach (var(oldParam, newParam) in pathParameters)
     {
         RemovePathParameter(oldParam, parameters.Missing);
         RemovePathParameter(newParam, parameters.Increased);
     }
 }
예제 #2
0
        public ChangedParametersBO Diff(
            List <OpenApiParameter> left, List <OpenApiParameter> right, DiffContextBO context)
        {
            var changedParameters =
                new ChangedParametersBO(left, right, context);

            if (null == left)
            {
                left = new List <OpenApiParameter>();
            }
            if (null == right)
            {
                right = new List <OpenApiParameter>();
            }

            foreach (var openApiParameter in left)
            {
                var leftPara = openApiParameter;
                leftPara = RefPointer.ResolveRef(_leftComponents, leftPara, leftPara.Reference?.ReferenceV3);

                var rightParam = Contains(_rightComponents, right, leftPara);
                if (rightParam == null)
                {
                    changedParameters.Missing.Add(leftPara);
                }
                else
                {
                    right.Remove(rightParam);

                    var diff = _openApiDiff.ParameterDiff
                               .Diff(leftPara, rightParam, context);
                    if (diff != null)
                    {
                        changedParameters.Changed.Add(diff);
                    }
                }
            }

            changedParameters.Increased.AddRange(right);

            return(ChangedUtils.IsChanged(changedParameters));
        }
예제 #3
0
        private static string UlParam(ChangedParametersBO changedParameters)
        {
            var addParameters = changedParameters.Increased;
            var delParameters = changedParameters.Missing;
            var changed       = changedParameters.Changed;
            var sb            = new StringBuilder();

            foreach (var param in addParameters)
            {
                sb.Append(ItemParam("Add ", param));
            }
            foreach (var param in changed)
            {
                sb.Append(LiChangedParam(param));
            }
            foreach (var param in delParameters)
            {
                sb.Append(ItemParam("Delete ", param));
            }
            return(sb.ToString());
        }