Exemplo n.º 1
0
        protected internal JsFunction ClientConstruct(ClientConstructorContext ctx)
        {
            var dic = (from oi in OperationInfos(ctx.Type)
                       where oi.OperationType == OperationType.Constructor
                       let os = GetSettings <ConstructorOperationSettingsBase>(ctx.Type, oi.OperationSymbol)
                                let coc = newClientConstructorOperationContext.GetInvoker(ctx.Type)(oi, ctx, os)
                                          where os != null && os.HasIsVisible ? os.OnIsVisible(coc) : true
                                          select coc).ToDictionary(a => a.OperationInfo.OperationSymbol);

            if (dic.Count == 0)
            {
                return(null);
            }

            return(JsModule.Navigator["chooseConstructor"](ClientConstructorManager.ExtraJsonParams, ctx.Prefix,
                                                           SelectorMessage.PleaseSelectAConstructor.NiceToString(),
                                                           dic.Select(kvp => new
            {
                value = kvp.Key.Key,
                toStr = kvp.Value.Settings?.Text ?? kvp.Key.NiceToString(),
                operationConstructor = kvp.Value.Settings == null || !kvp.Value.Settings.HasClientConstructor ? null : new JRaw(PromiseRequire(kvp.Value.Settings.OnClientConstructor(kvp.Value)))
            })));
        }
Exemplo n.º 2
0
 public ClientConstructorOperationContext(OperationInfo info, ClientConstructorContext clientContext, ConstructorOperationSettings <T> settings)
 {
     this.OperationInfo            = info;
     this.ClientConstructorContext = clientContext;
     this.Settings = settings;
 }