private void SetScalars(ActionTypeContextFacade actionTypeContext) {
     Id = actionTypeContext.ActionContext.Id;
     FriendlyName = actionTypeContext.ActionContext.Action.Name;
     Description = actionTypeContext.ActionContext.Action.Description;
     HasParams = actionTypeContext.ActionContext.VisibleParameters.Any();
     MemberOrder = actionTypeContext.ActionContext.Action.MemberOrder;
 }
 private void SetParameters(HttpRequestMessage req, ActionTypeContextFacade actionTypeContext) {
     IEnumerable<LinkRepresentation> parms = actionTypeContext.ActionContext.VisibleParameters.
         Select(p => LinkRepresentation.Create(OidStrategy,new ParamTypeRelType(new UriMtHelper(OidStrategy, req, new ParameterTypeContextFacade {
             Action = actionTypeContext.ActionContext.Action,
             OwningSpecification = actionTypeContext.OwningSpecification,
             Parameter = p.Parameter
         })), Flags));
     Parameters = parms.ToArray();
 }
 protected ActionTypeRepresentation(IOidStrategy oidStrategy, HttpRequestMessage req, ActionTypeContextFacade actionTypeContext, RestControlFlags flags)
     : base(oidStrategy, flags) {
     SelfRelType = new TypeMemberRelType(RelValues.Self, new UriMtHelper(oidStrategy ,req, actionTypeContext));
     SetScalars(actionTypeContext);
     SetLinks(req, actionTypeContext);
     SetParameters(req, actionTypeContext);
     SetExtensions();
     SetHeader();
 }
        private void SetLinks(HttpRequestMessage req, ActionTypeContextFacade actionTypeContext) {
            var domainTypeUri = new UriMtHelper(OidStrategy, req, actionTypeContext);
            var tempLinks = new List<LinkRepresentation> {
                LinkRepresentation.Create(OidStrategy, SelfRelType, Flags),
                LinkRepresentation.Create(OidStrategy ,new DomainTypeRelType(RelValues.Up, domainTypeUri), Flags),
                LinkRepresentation.Create(OidStrategy, new DomainTypeRelType(RelValues.ReturnType, new UriMtHelper(OidStrategy, req, actionTypeContext.ActionContext.Action.ReturnType)), Flags)
            };

            if (actionTypeContext.ActionContext.Action.ReturnType.IsCollection) {
                tempLinks.Add(LinkRepresentation.Create(OidStrategy ,new DomainTypeRelType(RelValues.ElementType, new UriMtHelper(OidStrategy, req, actionTypeContext.ActionContext.Action.ElementType)), Flags));
            }

            Links = tempLinks.ToArray();
        }
 public static ActionTypeRepresentation Create(IOidStrategy oidStrategy, HttpRequestMessage req, ActionTypeContextFacade actionTypeContext, RestControlFlags flags) {
     return new ActionTypeRepresentation(oidStrategy, req, actionTypeContext, flags);
 }
        public RestSnapshot(IOidStrategy oidStrategy, ActionTypeContextFacade actionTypeContext, HttpRequestMessage req, RestControlFlags flags)
            : this(oidStrategy,req, true) {
            logger.DebugFormat("RestSnapshot:{0}", actionTypeContext.GetType().FullName);

            populator = () => {
                representation = ActionTypeRepresentation.Create(oidStrategy ,req, actionTypeContext, flags);
                SetHeaders();
            };
        }
 public UriMtHelper(IOidStrategy oidStrategy, HttpRequestMessage req, ActionTypeContextFacade actionTypeContext)
     : this(oidStrategy ,req) {
     action = actionTypeContext.ActionContext.Action;
     spec = actionTypeContext.OwningSpecification;
     cachedId = "";
     CachedType = spec.DomainTypeName(oidStrategy);
 }