Exemplo n.º 1
0
 private IEnumerable <Property> GetProperties([NotNull] ServiceMethodParameter parameter)
 {
     return(from structure in parameter.Type.Types.GetStructures()
            from property in structure.Properties
            group property by property.Name into g
            select g.First());
 }
Exemplo n.º 2
0
        private static string MergeWrapper(ServiceMethodParameter parameter)
        {
            switch (parameter.Type.IsSimple)
            {
            case true: return(parameter.Name);

            case false: return("..." + parameter.Name);

            default:
                return($"...(typeof {parameter.Name} === 'object' ? ${parameter.Name} : {{ {parameter.Name} }})");
            }
        }
Exemplo n.º 3
0
        public ServiceMethodParameter MapServiceMethodParameter(ParameterInfo parameterInfo, MethodParameterContexts context)
        {
            var name      = _parameterNameMapper.MapParameterName(parameterInfo);
            var parameter = new ServiceMethodParameter(name);

            var propertyContext = new TypeReferenceContext(context.Services.Definitions);

            parameter.Source   = parameterInfo;
            parameter.PassOver = _parameterPassOverMapper.MapPassOver(parameterInfo);
            parameter.Type     = _parameterTypeMapper.GetParameterType(parameterInfo, propertyContext);

            return(parameter);
        }
Exemplo n.º 4
0
        private IEnumerable <IMethodUrlQueryItem> AsQuery([NotNull] ServiceMethodParameter parameter)
        {
            var properties = GetProperties(parameter).ToArray();

            if (properties.Any())
            {
                foreach (var property in properties)
                {
                    yield return(new ValueQueryItem(parameter, property));
                }
            }
            else
            {
                yield return(new ParameterQueryItem(parameter));
            }
        }
Exemplo n.º 5
0
 public ValueQueryItem([NotNull] ServiceMethodParameter parameter, [NotNull] Property property)
 {
     Parameter = parameter;
     Property  = property;
 }