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))) }))); }
public ClientConstructorOperationContext(OperationInfo info, ClientConstructorContext clientContext, ConstructorOperationSettings <T> settings) { this.OperationInfo = info; this.ClientConstructorContext = clientContext; this.Settings = settings; }