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()); }
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} }})"); } }
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); }
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)); } }
public ValueQueryItem([NotNull] ServiceMethodParameter parameter, [NotNull] Property property) { Parameter = parameter; Property = property; }