Match() public method

This is used to match a Transform based on the array component type of an object to be transformed. This will attempt to match the transform using the fully qualified class name of the array component type. If a transform can not be found then this method will throw an exception.
public Match ( Class, type ) : Transform,
type Class, /// this is the array to find the transform for ///
return Transform,
Beispiel #1
0
        private void AddParameterDescriptionsToModel(ActionApiDescriptionModel actionModel, MethodInfo method, ApiDescription apiDescription)
        {
            if (!apiDescription.ParameterDescriptions.Any())
            {
                return;
            }

            var matchedMethodParamNames = ArrayMatcher.Match(
                apiDescription.ParameterDescriptions.Select(p => p.Name).ToArray(),
                method.GetParameters().Select(GetMethodParamName).ToArray()
                );

            for (var i = 0; i < apiDescription.ParameterDescriptions.Count; i++)
            {
                var parameterDescription   = apiDescription.ParameterDescriptions[i];
                var matchedMethodParamName = matchedMethodParamNames.Length > i
                                                 ? matchedMethodParamNames[i]
                                                 : parameterDescription.Name;

                actionModel.AddParameter(new ParameterApiDescriptionModel(
                                             parameterDescription.Name,
                                             matchedMethodParamName,
                                             parameterDescription.Type,
                                             parameterDescription.RouteInfo?.IsOptional ?? false,
                                             parameterDescription.RouteInfo?.DefaultValue,
                                             parameterDescription.RouteInfo?.Constraints?.Select(c => c.GetType().Name).ToArray(),
                                             parameterDescription.Source.Id
                                             )
                                         );
            }
        }
Beispiel #2
0
    public void Should_Find_Correct_Items(
        string[] sourceArray,
        string[] destinationArray,
        string[] expectedArray)
    {
        var result = ArrayMatcher.Match(sourceArray, destinationArray);

        Assert.Equal(expectedArray, result);
    }
    private void AddParameterDescriptionsToModel(ActionApiDescriptionModel actionModel, MethodInfo method,
                                                 ApiDescription apiDescription)
    {
        if (!apiDescription.ParameterDescriptions.Any())
        {
            return;
        }

        var parameterDescriptionNames = apiDescription
                                        .ParameterDescriptions
                                        .Select(p => p.Name)
                                        .ToArray();

        var methodParameterNames = method
                                   .GetParameters()
                                   .Where(IsNotFromServicesParameter)
                                   .Select(GetMethodParamName)
                                   .ToArray();

        var matchedMethodParamNames = ArrayMatcher.Match(
            parameterDescriptionNames,
            methodParameterNames
            );

        for (var i = 0; i < apiDescription.ParameterDescriptions.Count; i++)
        {
            var parameterDescription   = apiDescription.ParameterDescriptions[i];
            var matchedMethodParamName = matchedMethodParamNames.Length > i
                ? matchedMethodParamNames[i]
                : parameterDescription.Name;

            actionModel.AddParameter(ParameterApiDescriptionModel.Create(
                                         parameterDescription.Name,
                                         _options.ApiParameterNameGenerator?.Invoke(parameterDescription),
                                         matchedMethodParamName,
                                         parameterDescription.Type,
                                         parameterDescription.RouteInfo?.IsOptional ?? false,
                                         parameterDescription.RouteInfo?.DefaultValue,
                                         parameterDescription.RouteInfo?.Constraints?.Select(c => c.GetType().Name).ToArray(),
                                         parameterDescription.Source.Id,
                                         parameterDescription.ModelMetadata?.ContainerType != null
                        ? parameterDescription.ParameterDescriptor?.Name ?? string.Empty
                        : string.Empty
                                         )
                                     );
        }
    }