public static ParameterRepresentation Create(IOidStrategy oidStrategy, HttpRequestMessage req, IObjectFacade objectFacade, IAssociationFacade assoc, ActionContextFacade actionContext, RestControlFlags flags) { var optionals = new List <OptionalProperty>(); if (assoc.IsChoicesEnabled != Choices.NotEnabled && !assoc.GetChoicesParameters().Any()) { IObjectFacade[] choices = assoc.GetChoices(objectFacade, null); object[] choicesArray = choices.Select(c => RestUtils.GetChoiceValue(oidStrategy, req, c, assoc, flags)).ToArray(); optionals.Add(new OptionalProperty(JsonPropertyNames.Choices, choicesArray)); } var adapter = new FieldFacadeAdapter(assoc); IObjectFacade defaultNakedObject = assoc.GetValue(objectFacade); if (defaultNakedObject != null) { string title = defaultNakedObject.TitleString; object value = RestUtils.ObjectToPredefinedType(defaultNakedObject.Object, true); var isValue = defaultNakedObject.Specification.IsParseable || (defaultNakedObject.Specification.IsCollection && defaultNakedObject.ElementSpecification.IsParseable); object defaultValue = isValue ? value : CreateDefaultLinks(oidStrategy, req, adapter, actionContext.Action, defaultNakedObject, title, flags); optionals.Add(new OptionalProperty(JsonPropertyNames.Default, defaultValue)); } if (optionals.Count == 0) { return(new ParameterRepresentation(oidStrategy, req, objectFacade, adapter, flags)); } return(CreateWithOptionals <ParameterRepresentation>(new object[] { oidStrategy, req, objectFacade, adapter, flags }, optionals)); }
public Tuple <string, ITypeFacade>[] GetChoicesParameters() { return(parameter?.GetChoicesParameters() ?? association?.GetChoicesParameters()); }
public static ParameterRepresentation Create(IOidStrategy oidStrategy, HttpRequestMessage req, IObjectFacade objectFacade, IAssociationFacade assoc, ActionContextFacade actionContext, RestControlFlags flags) { var optionals = new List<OptionalProperty>(); if (assoc.IsChoicesEnabled != Choices.NotEnabled && !assoc.GetChoicesParameters().Any()) { IObjectFacade[] choices = assoc.GetChoices(objectFacade, null); object[] choicesArray = choices.Select(c => RestUtils.GetChoiceValue(oidStrategy, req, c, assoc, flags)).ToArray(); optionals.Add(new OptionalProperty(JsonPropertyNames.Choices, choicesArray)); } var adapter = new FieldFacadeAdapter(assoc); IObjectFacade defaultNakedObject = assoc.GetValue(objectFacade); if (defaultNakedObject != null) { string title = defaultNakedObject.TitleString; object value = RestUtils.ObjectToPredefinedType(defaultNakedObject.Object, true); var isValue = defaultNakedObject.Specification.IsParseable || (defaultNakedObject.Specification.IsCollection && defaultNakedObject.ElementSpecification.IsParseable); object defaultValue = isValue ? value : CreateDefaultLinks(oidStrategy, req, adapter, actionContext.Action, defaultNakedObject, title, flags); optionals.Add(new OptionalProperty(JsonPropertyNames.Default, defaultValue)); } if (optionals.Count == 0) { return new ParameterRepresentation(oidStrategy, req, objectFacade, adapter, flags); } return CreateWithOptionals<ParameterRepresentation>(new object[] { oidStrategy, req, objectFacade, adapter, flags }, optionals); }