public static LocalValue <T> Build <WidgetT, T>(
            IReadWriteValueView <WidgetT, T> view, params Validate <T>[] validators)
        {
            var result = new LocalValue <T>(default(T), default(T));

            view.BindReadWriteAndInitialize(result);
            validators.ForEach(y => result.AddValidatorAndRevalidate(y));
            return(result);
        }
        public static LocalValue <ModelT> Build <WidgetT, ModelT, ViewT>(
            ModelT defaultValue, IReadWriteValueView <WidgetT, ViewT> view,
            Func <ModelT, ViewT> convertFromDomain, Func <ViewT, ModelT> convertToDomain,
            params Validate <ModelT>[] validators)
        {
            var result = new LocalValue <ModelT>(defaultValue);

            view.BindReadWriteAndInitialize(result, convertFromDomain, convertToDomain);
            validators.ForEach(y => result.AddValidatorAndRevalidate(y));
            return(result);
        }
        public static LocalValue <int?> BuildNullableInt <WidgetT>(
            int?defaultValue, IReadWriteValueView <WidgetT, string> view,
            params Validate <int?>[] validators)
        {
            var result = new LocalValue <int?>(defaultValue);

            view.BindReadWriteAndInitialize(result,
                                            x => !x.HasValue ? "" : I18n.Localize(x.Value),
                                            x => string.IsNullOrEmpty(x) ? (int?)null : I18n.ParseInt(x));
            validators.ForEach(y => result.AddValidatorAndRevalidate(y));
            return(result);
        }
 public static RemoteValue <DataT, RemOperResT> Build <WidgetT, DataT, RemOperResT>(
     DataT initialValue,
     Func <DataT, Task <RemOperResT> > saveOper,
     IReadWriteValueView <WidgetT, DataT> view,
     Func <RemOperResT, DataT> remToLocal,
     params Validate <DataT>[] validators)
 {
     return(new RemoteValue <DataT, RemOperResT>(
                initialValue,
                saveOper,
                remToLocal,
                initialization: x => {
         validators.ForEach(x.AddValidatorAndRevalidate);
         view.BindReadWriteAndInitialize(x);
     }));
 }
Example #5
0
 public ClassFieldRemoteMutator <DataT, DataT, ContT> Build <WidgetT, DataT>(
     Expression <Func <ContT, DataT> > getField, IReadWriteValueView <WidgetT, DataT> view,
     params Validate <DataT>[] validators)
 {
     return(new ClassFieldRemoteMutator <DataT, DataT, ContT>(
                getField,
                x => x,
                x => x,
                x => _caller.SaveField(ExpressionUtil.ExtractFieldName(getField), x),
                x => {
         validators.ForEach(y => x.AddValidatorAndRevalidate(y));
         view.BindReadWriteAndInitialize(x);
     },
                postOperationConsumerOrNull: _postOperationConsumerOrNull,
                postOperationInvokeBeforeChanged: _postOperationInvokeBeforeChanged));
 }
Example #6
0
 public ClassFieldRemoteMutator <LocalT, RemT, ContT> BuildSingleChoiceDropDown <WidgetT, LocalT, RemT>(
     Expression <Func <ContT, RemT> > getRemoteField, IReadWriteValueView <WidgetT, LocalT> view,
     Func <LocalT, RemT> toRemoteType, Func <RemT, LocalT> toLocalType,
     params Validate <LocalT>[] validators)
 {
     return(new ClassFieldRemoteMutator <LocalT, RemT, ContT>(
                getRemoteField,
                toRemoteType,
                toLocalType,
                x => _caller.SaveField(ExpressionUtil.ExtractFieldName(getRemoteField), x),
                x => {
         validators.ForEach(y => x.AddValidatorAndRevalidate(y));
         view.BindReadWriteAndInitialize(x);
     },
                postOperationConsumerOrNull: _postOperationConsumerOrNull,
                postOperationInvokeBeforeChanged: _postOperationInvokeBeforeChanged));
 }
 public static RemoteValue <LocalT, RemOperResT> Build <WidgetT, LocalT, RemOperResT, ViewT>(
     LocalT initialValue,
     Func <LocalT, Task <RemOperResT> > saveOper,
     IReadWriteValueView <WidgetT, ViewT> view,
     Func <RemOperResT, LocalT> remToLocal,
     Func <LocalT, ViewT> convertFromDomain,
     Func <ViewT, LocalT> convertToDomain,
     params Validate <LocalT>[] validators)
 {
     return(new RemoteValue <LocalT, RemOperResT>(
                initialValue,
                saveOper,
                remToLocal,
                initialization: x => {
         validators.ForEach(x.AddValidatorAndRevalidate);
         view.BindReadWriteAndInitialize(x, convertFromDomain, convertToDomain);
     }));
 }
        public static LocalValue <int> BuildInt <WidgetT>(
            int defaultvalue, IReadWriteValueView <WidgetT, string> view, params Validate <int>[] validators)
        {
            var result = new LocalValue <int>(defaultvalue);

            view.BindReadWriteAndInitialize(result, x => I18n.Localize(x), x => {
                try {
                    var val = I18n.ParseInt(x);
                    return(val);
                } catch (Exception ex) {
                    Logger.Error(typeof(LocalValueFieldBuilder), "BuildInt converter got exception {0}", ex);
                    throw new Exception(
                        I18n.Translate("Wrong integer format entered. Remove letters or special characters"));
                }
            });
            validators.ForEach(y => result.AddValidatorAndRevalidate(y));
            return(result);
        }
 public static Tuple <ValueChangedRich <T>, ValueChangedSimple <T> > BindReadWriteAndInitialize <WidgetT, T>(
     this IReadWriteValueView <WidgetT, T> view, IReadWriteValue <T> domain)
 {
     return(view.BindReadWriteAndInitialize(domain, x => x, x => x));
 }