Exemplo n.º 1
0
 public AppBloc(IAuthBloc authBloc)
 {
     authBloc.WhenState
     .Select(@is => (@is is LoggedOutState)
             ? (IAppState) new AppLogInState()
             : (IAppState) new AppHomeState()
             )
     .Subscribe(SetState);
 }
Exemplo n.º 2
0
        //protected override HomeViewModelState CreateInitialState() => new HomeViewModelState();

        public HomeViewModelBloc(IAuthBloc authBloc)
        {
            _authBloc = authBloc;

            _authBloc.WhenState
            .WhereAs <IAuthState, LoggedInState>()
            .Select(s => s.Username)
            .Select(s => $"{s} detail page")
            .Subscribe(UpdateStateProperty(s => s.ButtonLabel));

            /*
             * // update the whole state
             * Observable.Return(new HomeViewModelState { Title = "B" })
             *  .Delay(TimeSpan.FromSeconds(3))
             *  .ObserveOn(SynchronizationContext.Current)
             *  .Subscribe(SetState)
             *  ;
             *
             * // update only one state property
             * Observable.Return("C")
             *  .Delay(TimeSpan.FromSeconds(5))
             *  .ObserveOn(SynchronizationContext.Current)
             *  .Subscribe(UpdateStateProperty(s => s.Title))
             *  ;
             *
             * // other one-property syntax
             * UpdateStateProperty(s => s.ButtonLabel, "Click Me !!!");
             *
             * // updates multiple properties at once but will only call setstate() 1 time
             * UpdateStateProperties(state =>
             * {
             *  state.Title = "a";
             *  state.ButtonLabel = "b";
             *  return state;
             * });
             *
             * SetState(new HomeViewModelState());
             * SetState(new HomeViewModelState(error:e));
             * SetState(new HomeViewModelState(data:obj));
             *
             * // hardcoded values to test ui with states before having business logic
             * SetState(new HomeViewModelState{
             *  Title = "A Title",
             *  ButtonLabel = "Click Me"
             * });
             */
        }
Exemplo n.º 3
0
 public LoginViewModelBloc(IAuthBloc authBloc)
 {
     _authBloc = authBloc;
 }