public static LocalValue <DataT> Build <WidgetT, DataT>( IReadOnlyValueView <WidgetT, DataT> view, params Validate <DataT>[] validators) { var result = new LocalValue <DataT>(default(DataT)); view.BindReadOnlyAndInitialize(result, x => x); validators.ForEach(y => result.AddValidatorAndRevalidate(y)); return(result); }
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 <int> BuildInt <WidgetT>( IReadOnlyValueView <WidgetT, string> view, params Validate <int>[] validators) { var result = new LocalValue <int>(0); view.BindReadOnlyAndInitialize(result, x => I18n.Localize(x)); validators.ForEach(y => result.AddValidatorAndRevalidate(y)); return(result); }
public static LocalValue <DateTime?> BuildDateTimePicker( DateTimePickerView view, DateTime?defaultValue = null, params Validate <DateTime?>[] validators) { var result = new LocalValue <DateTime?>(defaultValue); view.BindReadWriteAndInitialize(result); validators.ForEach(y => result.AddValidatorAndRevalidate(y)); return(result); }
public static LocalValue <decimal> BuildDecimal <WidgetT>( IReadOnlyValueView <WidgetT, string> view, DecimalFormat format, params Validate <decimal>[] validators) { var result = new LocalValue <decimal>(0); view.BindReadOnlyAndInitialize(result, x => I18n.Localize(x, format)); validators.ForEach(y => result.AddValidatorAndRevalidate(y)); return(result); }
public static LocalValue <ModelT> Build <WidgetT, ModelT, ViewT>( IReadOnlyValueView <WidgetT, ViewT> view, Func <ModelT, ViewT> convertFromDomain, params Validate <ModelT>[] validators) { var result = new LocalValue <ModelT>(default(ModelT)); view.BindReadOnlyAndInitialize(result, convertFromDomain); 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 LocalValue <decimal> BuildDecimalWithPrecision <WidgetT>( IReadOnlyValueView <WidgetT, string> view, decimal defaultValue, Func <int> getPrecision, params Validate <decimal>[] validators) { var result = new LocalValue <decimal>(defaultValue); view.BindReadOnlyAndInitialize(result, x => I18n.Localize(x, DecimalFormatExtensions.GetWithPrecision(getPrecision()))); validators.ForEach(y => result.AddValidatorAndRevalidate(y)); return(result); }
public static LocalValue <decimal?> BuildNullableDecimal( InputView view, DecimalFormat format, params Validate <decimal?>[] validators) { view.RaisesChangedOnKeyPressed = false; var result = new LocalValue <decimal?>(null); view.BindReadWriteAndInitialize(result, x => !x.HasValue ? "" : I18n.Localize(x.Value, format), x => string.IsNullOrEmpty(x) ? (decimal?)null : I18n.ParseDecimal(x)); validators.ForEach(y => result.AddValidatorAndRevalidate(y)); return(result); }
public static LocalValue <decimal> BuildDecimal( InputView view, DecimalFormat format, params Validate <decimal>[] validators) { view.RaisesChangedOnKeyPressed = false; var result = new LocalValue <decimal>(0); view.BindReadWriteAndInitialize(result, x => I18n.Localize(x, format), x => I18n.ParseDecimal(x)); validators.ForEach(y => result.AddValidatorAndRevalidate(y)); return(result); }
public static LocalValue <decimal> BuildDecimalWithPrecision( InputView view, decimal defaultValue, Func <int> getPrecision, params Validate <decimal>[] validators) { var result = new LocalValue <decimal>(defaultValue); view.RaisesChangedOnKeyPressed = false; view.BindReadWriteAndInitialize(result, x => I18n.Localize(x, DecimalFormatExtensions.GetWithPrecision(getPrecision())), x => I18n.ParseDecimalWithoutLoss(x, getPrecision())); validators.ForEach(y => result.AddValidatorAndRevalidate(y)); return(result); }
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 LocalValue <decimal?> BuildNullableDecimalWithPrecision( InputView view, Func <int> getPrecision, params Validate <decimal?>[] validators) { view.RaisesChangedOnKeyPressed = false; var result = new LocalValue <decimal?>(null); view.BindReadWriteAndInitialize(result, x => !x.HasValue ? "" : I18n.Localize(x.Value, DecimalFormatExtensions.GetWithPrecision(getPrecision())), x => string.IsNullOrEmpty(x) ? (decimal?)null : I18n.ParseDecimalWithoutLoss(x, getPrecision())); validators.ForEach(y => result.AddValidatorAndRevalidate(y)); return(result); }
public LoginForm(LoginFormView view, Func <string, string, Task <Tuple <string, UserT> > > service, Action <string, UserT> storeResult) { View = view; var login = new LocalValue <string>("", ""); login.AddValidatorAndRevalidate( (x, errors) => errors.IfTrueAdd(string.IsNullOrWhiteSpace(x), I18n.Translate("Field cannot be empty")) ); view.Login.BindReadWriteAndInitialize(login); var passwd = new LocalValue <string>("", ""); passwd.AddValidatorAndRevalidate( (x, errors) => errors.IfTrueAdd(string.IsNullOrWhiteSpace(x), I18n.Translate("Field cannot be empty")) ); view.Password.BindReadWriteAndInitialize(passwd); var mayAttemptLogin = new AggregatedErrorsValue <bool>(false, self => !self.Errors.Any(), x => { x.Observes(login); x.Observes(passwd); }); var attemptLogin = RemoteActionBuilder.Build(view.AttemptLogin, () => service(login.Value, passwd.Value), x => { storeResult(x.Item1, x.Item2); LoggedUserName = login.Value; ErrorMessageOrNull = null; Ended?.Invoke(this, CompletedOrCanceled.Completed); }, x => { LoggedUserName = null; ErrorMessageOrNull = x.ErrorMessage; Ended?.Invoke(this, CompletedOrCanceled.Canceled); }); attemptLogin.BindEnableAndInitialize(mayAttemptLogin); }