private LinkRepresentation CreatePromptLink(HttpRequestMessage req, INakedObjectSurface nakedObject, INakedObjectActionParameterSurface parameter) { var opts = new List<OptionalProperty>(); var parameterContext = new ParameterContextSurface { Action = parameter.Action, Target = nakedObject, Parameter = parameter }; if (parameter.IsAutoCompleteEnabled) { var arguments = new OptionalProperty(JsonPropertyNames.Arguments, MapRepresentation.Create(new OptionalProperty(JsonPropertyNames.XRoSearchTerm, MapRepresentation.Create(new OptionalProperty(JsonPropertyNames.Value, null, typeof (object)))))); var extensions = new OptionalProperty(JsonPropertyNames.Extensions, MapRepresentation.Create(new OptionalProperty(JsonPropertyNames.MinLength, parameter.AutoCompleteMinLength()))); opts.Add(arguments); opts.Add(extensions); } else { Tuple<string, INakedObjectSpecificationSurface>[] parms = parameter.GetChoicesParameters(); OptionalProperty[] args = parms.Select(tuple => RestUtils.CreateArgumentProperty(req, tuple, Flags)).ToArray(); var arguments = new OptionalProperty(JsonPropertyNames.Arguments, MapRepresentation.Create(args)); opts.Add(arguments); } return LinkRepresentation.Create(new PromptRelType(new UriMtHelper(req, parameterContext)), Flags, opts.ToArray()); }
public UriMtHelper(HttpRequestMessage req, ParameterTypeContextSurface parameterTypeContext) : this(req) { action = parameterTypeContext.Action; spec = parameterTypeContext.OwningSpecification; param = parameterTypeContext.Parameter; cachedId = ""; cachedType = spec.DomainTypeName(); }
private static object CreateDefaultLinks(HttpRequestMessage req, INakedObjectActionParameterSurface parameter, INakedObjectSurface defaultNakedObject, string title, RestControlFlags flags) { if (defaultNakedObject.Specification.IsCollection()) { return(defaultNakedObject.ToEnumerable().Select(i => CreateDefaultLink(req, parameter, i, i.TitleString(), flags)).ToArray()); } return(CreateDefaultLink(req, parameter, defaultNakedObject, title, flags)); }
public UriMtHelper(HttpRequestMessage req, ParameterContextSurface parameterContext) : this(req) { action = parameterContext.Action; param = parameterContext.Parameter; nakedObject = parameterContext.Target; spec = nakedObject.Specification; LinkObjectId oid = OidStrategyHolder.OidStrategy.GetOid(nakedObject); cachedId = oid.InstanceId; cachedType = oid.DomainType; }
private void SetLinks(HttpRequestMessage req, INakedObjectSurface nakedObject, INakedObjectActionParameterSurface parameter) { var tempLinks = new List<LinkRepresentation>(); if (Flags.FormalDomainModel) { var parameterTypeContextSurface = new ParameterTypeContextSurface { Action = parameter.Action, OwningSpecification = nakedObject.Specification, Parameter = parameter }; LinkRepresentation describedBy = LinkRepresentation.Create(new ParamTypeRelType(RelValues.DescribedBy, new UriMtHelper(req, parameterTypeContextSurface)), Flags); tempLinks.Add(describedBy); } if (parameter.IsAutoCompleteEnabled || parameter.GetChoicesParameters().Any()) { tempLinks.Add(CreatePromptLink(req, nakedObject, parameter)); } Links = tempLinks.ToArray(); }
public static string Description(this INakedObjectActionParameterSurface nakedObjectActionParameterSurface) { return(nakedObjectActionParameterSurface.GetScalarProperty <string>(ScalarProperty.Description)); }
public string GetRelParametersFor(INakedObjectActionParameterSurface nakedObjectActionParameterSurface) { return(FormatParameter(RelParamValues.Action, nakedObjectActionParameterSurface.Action.Id) + FormatParameter(RelParamValues.Param, nakedObjectActionParameterSurface.Id)); }
public static object GetChoiceValue(HttpRequestMessage req, INakedObjectSurface item, INakedObjectActionParameterSurface parameter, RestControlFlags flags) { return GetChoiceValue(item, new ChoiceRelType(parameter, new UriMtHelper(req, item)), flags); }
public string GetRelParametersFor(INakedObjectActionParameterSurface nakedObjectActionParameterSurface) { return FormatParameter(RelParamValues.Action, nakedObjectActionParameterSurface.Action.Id) + FormatParameter(RelParamValues.Param, nakedObjectActionParameterSurface.Id); }
private void SetExtensions(HttpRequestMessage req, INakedObjectSurface nakedObject, INakedObjectActionParameterSurface parameter, RestControlFlags flags) { IDictionary<string, object> custom = parameter.ExtensionData(); if (IsUnconditionalChoices(parameter)) { Tuple<INakedObjectSurface, string>[] choices = parameter.GetChoicesAndTitles(nakedObject, null); Tuple<object, string>[] choicesArray = choices.Select(tuple => new Tuple<object, string>(RestUtils.GetChoiceValue(req, tuple.Item1, parameter, flags), tuple.Item2)).ToArray(); OptionalProperty[] op = choicesArray.Select(tuple => new OptionalProperty(tuple.Item2, tuple.Item1)).ToArray(); MapRepresentation map = MapRepresentation.Create(op); custom = custom ?? new Dictionary<string, object>(); custom[JsonPropertyNames.CustomChoices] = map; } string mask = parameter.Mask(); if (!string.IsNullOrWhiteSpace(mask)) { custom = custom ?? new Dictionary<string, object>(); custom[JsonPropertyNames.CustomMask] = mask; } if (Flags.SimpleDomainModel) { Extensions = RestUtils.GetExtensions(friendlyname: parameter.Name(), description: parameter.Description(), pluralName: null, domainType: null, isService: null, hasParams: null, optional: !parameter.IsMandatory(), maxLength: parameter.MaxLength(), pattern: parameter.Pattern(), memberOrder: null, customExtensions: custom, returnType: parameter.Specification); } else { Extensions = MapRepresentation.Create(); } }
private static object CreateDefaultLinks(HttpRequestMessage req, INakedObjectActionParameterSurface parameter, INakedObjectSurface defaultNakedObject, string title, RestControlFlags flags) { if (defaultNakedObject.Specification.IsCollection()) { return defaultNakedObject.ToEnumerable().Select(i => CreateDefaultLink(req, parameter, i, i.TitleString(), flags)).ToArray(); } return CreateDefaultLink(req, parameter, defaultNakedObject, title, flags); }
protected ParameterRepresentation(HttpRequestMessage req, INakedObjectSurface nakedObject, INakedObjectActionParameterSurface parameter, RestControlFlags flags) : base(flags) { SetName(parameter); SetExtensions(req, nakedObject, parameter, flags); SetLinks(req, nakedObject, parameter); SetHeader(nakedObject); }
public static int AutoCompleteMinLength(this INakedObjectActionParameterSurface nakedObjectActionParameterSurface) { return(nakedObjectActionParameterSurface.GetScalarProperty <int>(ScalarProperty.AutoCompleteMinLength)); }
private static bool IsUnconditionalChoices(INakedObjectActionParameterSurface parameter) { return parameter.IsChoicesEnabled && (parameter.Specification.IsParseable() || (parameter.Specification.IsCollection() && parameter.Specification.ElementType.IsParseable())) && !parameter.GetChoicesParameters().Any(); }
public static bool IsMandatory(this INakedObjectActionParameterSurface nakedObjectActionParameterSurface) { return(nakedObjectActionParameterSurface.GetScalarProperty <bool>(ScalarProperty.IsMandatory)); }
public static int Number(this INakedObjectActionParameterSurface nakedObjectActionParameterSurface) { return(nakedObjectActionParameterSurface.GetScalarProperty <int>(ScalarProperty.Number)); }
private static LinkRepresentation CreateDefaultLink(HttpRequestMessage req, INakedObjectActionParameterSurface parameter, INakedObjectSurface defaultNakedObject, string title, RestControlFlags flags) { return(LinkRepresentation.Create(new DefaultRelType(parameter, new UriMtHelper(req, defaultNakedObject)), flags, new OptionalProperty(JsonPropertyNames.Title, title))); }
private static bool IsUnconditionalChoices(INakedObjectActionParameterSurface parameter) { return(parameter.IsChoicesEnabled && (parameter.Specification.IsParseable() || (parameter.Specification.IsCollection() && parameter.ElementType.IsParseable())) && !parameter.GetChoicesParameters().Any()); }
private void SetExtensions(HttpRequestMessage req, INakedObjectSurface nakedObject, INakedObjectActionParameterSurface parameter, RestControlFlags flags) { IDictionary <string, object> custom = parameter.ExtensionData(); if (IsUnconditionalChoices(parameter)) { Tuple <INakedObjectSurface, string>[] choices = parameter.GetChoicesAndTitles(nakedObject, null); Tuple <object, string>[] choicesArray = choices.Select(tuple => new Tuple <object, string>(RestUtils.GetChoiceValue(req, tuple.Item1, parameter, flags), tuple.Item2)).ToArray(); OptionalProperty[] op = choicesArray.Select(tuple => new OptionalProperty(tuple.Item2, tuple.Item1)).ToArray(); MapRepresentation map = MapRepresentation.Create(op); custom = custom ?? new Dictionary <string, object>(); custom[JsonPropertyNames.CustomChoices] = map; } string mask = parameter.Mask(); if (!string.IsNullOrWhiteSpace(mask)) { custom = custom ?? new Dictionary <string, object>(); custom[JsonPropertyNames.CustomMask] = mask; } if (Flags.SimpleDomainModel) { Extensions = RestUtils.GetExtensions(friendlyname: parameter.Name(), description: parameter.Description(), pluralName: null, domainType: null, isService: null, hasParams: null, optional: !parameter.IsMandatory(), maxLength: parameter.MaxLength(), pattern: parameter.Pattern(), memberOrder: null, customExtensions: custom, returnType: parameter.Specification, elementType: parameter.ElementType); } else { Extensions = MapRepresentation.Create(); } }
public UriMtHelper(HttpRequestMessage req, ParameterContextSurface parameterContext) : this(req) { action = parameterContext.Action; param = parameterContext.Parameter; nakedObject = parameterContext.Target; spec = nakedObject.Specification; LinkObjectId oid = OidStrategyHolder.OidStrategy.GetOid(nakedObject); cachedId = oid.InstanceId; cachedType = oid.DomainType; }
public UriMtHelper(HttpRequestMessage req, ParameterTypeContextSurface parameterTypeContext) : this(req) { action = parameterTypeContext.Action; spec = parameterTypeContext.OwningSpecification; param = parameterTypeContext.Parameter; cachedId = ""; cachedType = spec.DomainTypeName(); }
public static int?MaxLength(this INakedObjectActionParameterSurface nakedObjectActionParameterSurface) { return(nakedObjectActionParameterSurface.GetScalarProperty <int?>(ScalarProperty.MaxLength)); }
public static ParameterRepresentation Create(HttpRequestMessage req, INakedObjectSurface nakedObject, INakedObjectActionParameterSurface parameter, RestControlFlags flags) { var optionals = new List <OptionalProperty>(); if (parameter.IsChoicesEnabled && !parameter.GetChoicesParameters().Any()) { INakedObjectSurface[] choices = parameter.GetChoices(nakedObject, null); object[] choicesArray = choices.Select(c => RestUtils.GetChoiceValue(req, c, parameter, flags)).ToArray(); optionals.Add(new OptionalProperty(JsonPropertyNames.Choices, choicesArray)); } if (parameter.DefaultTypeIsExplicit(nakedObject)) { INakedObjectSurface defaultNakedObject = parameter.GetDefault(nakedObject); if (defaultNakedObject != null) { string title = defaultNakedObject.TitleString(); object value = RestUtils.ObjectToPredefinedType(defaultNakedObject.Object); var isValue = defaultNakedObject.Specification.IsParseable() || (defaultNakedObject.Specification.IsCollection() && defaultNakedObject.ElementSpecification.IsParseable()); object defaultValue = isValue ? value : CreateDefaultLinks(req, parameter, defaultNakedObject, title, flags); optionals.Add(new OptionalProperty(JsonPropertyNames.Default, defaultValue)); } } if (optionals.Count == 0) { return(new ParameterRepresentation(req, nakedObject, parameter, flags)); } return(CreateWithOptionals <ParameterRepresentation>(new object[] { req, nakedObject, parameter, flags }, optionals)); }
public static string Mask(this INakedObjectActionParameterSurface nakedObjectActionParameterSurface) { return(nakedObjectActionParameterSurface.GetScalarProperty <string>(ScalarProperty.Mask)); }
protected ParameterRepresentation(HttpRequestMessage req, INakedObjectSurface nakedObject, INakedObjectActionParameterSurface parameter, RestControlFlags flags) : base(flags) { SetName(parameter); SetExtensions(req, nakedObject, parameter, flags); SetLinks(req, nakedObject, parameter); SetHeader(nakedObject); }
public static IDictionary <string, object> ExtensionData(this INakedObjectActionParameterSurface nakedObjectActionParameterSurface) { return(nakedObjectActionParameterSurface.GetScalarProperty <IDictionary <string, object> >(ScalarProperty.ExtensionData)); }
private void SetName(INakedObjectActionParameterSurface parameter) { Name = parameter.Id; }
private static LinkRepresentation CreateDefaultLink(HttpRequestMessage req, INakedObjectActionParameterSurface parameter, INakedObjectSurface defaultNakedObject, string title, RestControlFlags flags) { return LinkRepresentation.Create(new DefaultRelType(parameter, new UriMtHelper(req, defaultNakedObject)), flags, new OptionalProperty(JsonPropertyNames.Title, title)); }
private LinkRepresentation CreatePromptLink(HttpRequestMessage req, INakedObjectSurface nakedObject, INakedObjectActionParameterSurface parameter) { var opts = new List <OptionalProperty>(); var parameterContext = new ParameterContextSurface { Action = parameter.Action, Target = nakedObject, Parameter = parameter }; if (parameter.IsAutoCompleteEnabled) { var arguments = new OptionalProperty(JsonPropertyNames.Arguments, MapRepresentation.Create(new OptionalProperty(JsonPropertyNames.XRoSearchTerm, MapRepresentation.Create(new OptionalProperty(JsonPropertyNames.Value, null, typeof(object)))))); var extensions = new OptionalProperty(JsonPropertyNames.Extensions, MapRepresentation.Create(new OptionalProperty(JsonPropertyNames.MinLength, parameter.AutoCompleteMinLength()))); opts.Add(arguments); opts.Add(extensions); } else { Tuple <string, INakedObjectSpecificationSurface>[] parms = parameter.GetChoicesParameters(); OptionalProperty[] args = parms.Select(tuple => RestUtils.CreateArgumentProperty(req, tuple, Flags)).ToArray(); var arguments = new OptionalProperty(JsonPropertyNames.Arguments, MapRepresentation.Create(args)); opts.Add(arguments); } return(LinkRepresentation.Create(new PromptRelType(new UriMtHelper(req, parameterContext)), Flags, opts.ToArray())); }
public static ParameterRepresentation Create(HttpRequestMessage req, INakedObjectSurface nakedObject, INakedObjectActionParameterSurface parameter, RestControlFlags flags) { var optionals = new List<OptionalProperty>(); if (parameter.IsChoicesEnabled && !parameter.GetChoicesParameters().Any()) { INakedObjectSurface[] choices = parameter.GetChoices(nakedObject, null); object[] choicesArray = choices.Select(c => RestUtils.GetChoiceValue(req, c, parameter, flags)).ToArray(); optionals.Add(new OptionalProperty(JsonPropertyNames.Choices, choicesArray)); } if (parameter.DefaultTypeIsExplicit(nakedObject)) { INakedObjectSurface defaultNakedObject = parameter.GetDefault(nakedObject); if (defaultNakedObject != null) { string title = defaultNakedObject.TitleString(); object value = RestUtils.ObjectToPredefinedType(defaultNakedObject.Object); var isValue = defaultNakedObject.Specification.IsParseable() || (defaultNakedObject.Specification.IsCollection() && defaultNakedObject.ElementSpecification.IsParseable()); object defaultValue = isValue ? value : CreateDefaultLinks(req, parameter, defaultNakedObject, title, flags); optionals.Add(new OptionalProperty(JsonPropertyNames.Default, defaultValue)); } } if (optionals.Count == 0) { return new ParameterRepresentation(req, nakedObject, parameter, flags); } return CreateWithOptionals<ParameterRepresentation>(new object[] {req, nakedObject, parameter, flags}, optionals); }
private void SetLinks(HttpRequestMessage req, INakedObjectSurface nakedObject, INakedObjectActionParameterSurface parameter) { var tempLinks = new List <LinkRepresentation>(); if (Flags.FormalDomainModel) { var parameterTypeContextSurface = new ParameterTypeContextSurface { Action = parameter.Action, OwningSpecification = nakedObject.Specification, Parameter = parameter }; LinkRepresentation describedBy = LinkRepresentation.Create(new ParamTypeRelType(RelValues.DescribedBy, new UriMtHelper(req, parameterTypeContextSurface)), Flags); tempLinks.Add(describedBy); } if (parameter.IsAutoCompleteEnabled || parameter.GetChoicesParameters().Any()) { tempLinks.Add(CreatePromptLink(req, nakedObject, parameter)); } Links = tempLinks.ToArray(); }
private void SetName(INakedObjectActionParameterSurface parameter) { Name = parameter.Id; }
public static object GetChoiceValue(HttpRequestMessage req, INakedObjectSurface item, INakedObjectActionParameterSurface parameter, RestControlFlags flags) { return(GetChoiceValue(item, new ChoiceRelType(parameter, new UriMtHelper(req, item)), flags)); }
public DefaultRelType(INakedObjectActionParameterSurface parameter, UriMtHelper helper) : this(helper) { this.parameter = parameter; }
public DefaultRelType(INakedObjectActionParameterSurface parameter, UriMtHelper helper) : this(helper) { this.parameter = parameter; }
private ParameterRepresentation GetParameter(INakedObjectActionParameterSurface parameter) { INakedObjectSurface nakedObject = actionContext.Target; return ParameterRepresentation.Create(req, nakedObject, parameter, Flags); }
private ParameterRepresentation GetParameter(INakedObjectActionParameterSurface parameter) { INakedObjectSurface nakedObject = actionContext.Target; return(ParameterRepresentation.Create(req, nakedObject, parameter, Flags)); }