public ViewModelValidator(IViewModelSerializationMapper viewModelMapper, DotvvmConfiguration dotvvmConfiguration)
 {
     this.viewModelSerializationMapper = viewModelMapper;
     this.validationItems = new Dictionary <object, object> {
         { typeof(DotvvmConfiguration), dotvvmConfiguration }
     };
 }
Beispiel #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DefaultViewModelSerializer"/> class.
 /// </summary>
 public DefaultViewModelSerializer(DotvvmConfiguration configuration, IViewModelProtector protector, IViewModelSerializationMapper serializationMapper, IViewModelServerCache viewModelServerCache)
 {
     this.viewModelProtector   = protector;
     this.JsonFormatting       = configuration.Debug ? Formatting.Indented : Formatting.None;
     this.viewModelMapper      = serializationMapper;
     this.viewModelServerCache = viewModelServerCache;
 }
Beispiel #3
0
        public static IViewModelSerializationMapper Map(this IViewModelSerializationMapper mapper, Type type, Action <ViewModelSerializationMap> action)
        {
            var map = mapper.GetMap(type);

            action(map);
            map.ResetFunctions();
            return(mapper);
        }
Beispiel #4
0
 public ViewModelJsonConverter(bool isPostback, IViewModelSerializationMapper viewModelSerializationMapper, JObject encryptedValues = null)
 {
     IsPostback      = isPostback;
     EncryptedValues = encryptedValues ?? new JObject();
     evReader        = EncryptedValuesReader.FromObject(EncryptedValues);
     evWriter        = new EncryptedValuesWriter(EncryptedValues.CreateWriter());
     this.viewModelSerializationMapper = viewModelSerializationMapper;
 }
 public ViewModelJsonConverter(bool isPostback, IViewModelSerializationMapper viewModelSerializationMapper, JObject encryptedValues = null)
 {
     IsPostback = isPostback;
     EncryptedValues = encryptedValues ?? new JObject();
     evReader = EncryptedValuesReader.FromObject(EncryptedValues);
     evWriter = new EncryptedValuesWriter(EncryptedValues.CreateWriter());
     this.viewModelSerializationMapper = viewModelSerializationMapper;
 }
Beispiel #6
0
 public ViewModelJsonConverter(bool isPostback, IViewModelSerializationMapper viewModelSerializationMapper, JObject encryptedValues = null)
 {
     IsPostback      = isPostback;
     EncryptedValues = encryptedValues ?? new JObject();
     evReader        = new Lazy <EncryptedValuesReader>(() => {
         evWriter = new Lazy <EncryptedValuesWriter>(() => { throw new Exception("Can't use EncryptedValuesWriter at the same time as EncryptedValuesReader."); });
         return(new EncryptedValuesReader(EncryptedValues));
     });
     evWriter = new Lazy <EncryptedValuesWriter>(() => {
         evReader = new Lazy <EncryptedValuesReader>(() => { throw new Exception("Can't use EncryptedValuesReader at the same time as EncryptedValuesWriter."); });
         return(new EncryptedValuesWriter(EncryptedValues.CreateWriter()));
     });
     this.viewModelSerializationMapper = viewModelSerializationMapper;
 }
 public JavascriptTranslator(IOptions <JavascriptTranslatorConfiguration> config, IViewModelSerializationMapper serializationMapper)
 {
     this.DefaultMethodTranslator = config.Value;
     this.mapper = serializationMapper;
 }
Beispiel #8
0
 public BindingPropertyResolvers(IBindingExpressionBuilder bindingParser, IViewModelSerializationMapper vmMapper, DotvvmConfiguration configuration)
 {
     this.configuration = configuration;
     this.bindingParser = bindingParser;
     this.vmMapper      = vmMapper;
 }
Beispiel #9
0
 public UserColumnMappingCache(IViewModelSerializationMapper serializationMapper)
 {
     this.serializationMapper = serializationMapper;
     this.mappingCache        = new ConcurrentDictionary <Type, Dictionary <string, string> >();
 }
Beispiel #10
0
 public WebSocketViewModelSerializer(IViewModelSerializationMapper mapper)
 {
     Mapper         = mapper;
     JsonFormatting = Formatting.None;
 }
Beispiel #11
0
        public static string GetArgsScript(MethodCallExpression expression, DataContextStack dataContext, IViewModelSerializationMapper vmMapper)
        {
            var target    = expression.Object == null ? null : JavascriptTranslator.FormatKnockoutScript(JavascriptTranslator.CompileToJavascript(expression.Object, dataContext, vmMapper), allowDataGlobal: false);
            var arguments = (target == null ? new string[0] : new[] { target })
                            .Concat(expression.Arguments.Select(a => JavascriptTranslator.FormatKnockoutScript(JavascriptTranslator.CompileToJavascript(a, dataContext, vmMapper), allowDataGlobal: true)));

            return("[" + String.Join(", ", arguments) + "]");
        }
Beispiel #12
0
        protected virtual string CompileMethodCall(MethodCallExpression methodExpression, DataContextStack dataContext, IViewModelSerializationMapper vmMapper, string callbackFunction = null)
        {
            if (!methodExpression.Method.IsDefined(typeof(AllowStaticCommandAttribute)))
            {
                throw new Exception($"Method '{methodExpression.Method.DeclaringType.Name}.{methodExpression.Method.Name}' used in static command has to be marked with [AllowStaticCommand] attribute.");
            }

            if (callbackFunction == null)
            {
                callbackFunction = "null";
            }
            if (methodExpression == null)
            {
                throw new NotSupportedException("Static command binding must be a method call!");
            }
            var argsScript = GetArgsScript(methodExpression, dataContext, vmMapper);

            return($"dotvvm.staticCommandPostback(i_pageArea, sender, '{GetMethodName(methodExpression)}', { argsScript }, {callbackFunction})");
        }
Beispiel #13
0
 public ViewModelValidator(IViewModelSerializationMapper viewModelMapper)
 {
     this.viewModelSerializationMapper = viewModelMapper;
 }
 public StaticCommandBindingCompiler(IViewModelSerializationMapper vmMapper)
 {
     this.vmMapper = vmMapper;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="DefaultViewModelSerializer"/> class.
 /// </summary>
 public DefaultViewModelSerializer(DotvvmConfiguration configuration)
 {
     this.viewModelProtector = configuration.ServiceLocator.GetService <IViewModelProtector>();
     this.JsonFormatting     = configuration.Debug ? Formatting.Indented : Formatting.None;
     this.viewModelMapper    = configuration.ServiceLocator.GetService <IViewModelSerializationMapper>();
 }
Beispiel #16
0
        public static JsExpression CompileToJavascript(Expression binding, DataContextStack dataContext, IViewModelSerializationMapper mapper)
        {
            var translator = new JavascriptTranslator(dataContext);
            var script     = translator.Translate(binding);

            //if (binding.NodeType == ExpressionType.MemberAccess && script.EndsWith("()", StringComparison.Ordinal)) script = script.Remove(script.Length - 2);
            script.AcceptVisitor(new JsViewModelPropertyAdjuster(mapper));
            return(script);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="DefaultViewModelSerializer"/> class.
 /// </summary>
 public DefaultViewModelSerializer(DotvvmConfiguration configuration)
 {
     this.viewModelProtector = configuration.ServiceLocator.GetService<IViewModelProtector>();
     this.JsonFormatting = configuration.Debug ? Formatting.Indented : Formatting.None;
     this.viewModelMapper = configuration.ServiceLocator.GetService<IViewModelSerializationMapper>();
 }
Beispiel #18
0
 public JsViewModelPropertyAdjuster(IViewModelSerializationMapper mapper)
 {
     this.mapper = mapper;
 }
Beispiel #19
0
 public ViewModelValidator(IViewModelSerializationMapper viewModelMapper)
 {
     this.viewModelSerializationMapper = viewModelMapper;
 }