public ListViewModel(IStore <ApplicationState> appStore, IGetPlaceByIdActionCreator downloadPlaceByIdActionCreator) : base(appStore) { this.downloadPlaceByIdActionCreator = downloadPlaceByIdActionCreator ?? throw new ArgumentNullException(nameof(downloadPlaceByIdActionCreator)); appStore .DistinctUntilChanged(state => new { state.PlacesData.PlacesListState.Status }) .Subscribe(state => { var placesList = state.PlacesData.PlacesListState.Value; if (placesList != null && state.PlacesData.PlacesListState.Status == Core.Enums.Status.Success) { UpdateList(placesList); } else if (state.PlacesData.PlacesListState.Status == Core.Enums.Status.Error) { IsBusy = false; IsPromptVisible = true; } else { IsBusy = true; } }, error => { appStore.Dispatch(new SetErrorAction(error, "ListViewModel in subscription.")); }); InformationText = "TODO: Add error text to resources."; }
public MapViewModel(IStore <ApplicationState> appStore, IGetPlaceByIdActionCreator downloadPlaceByIdActionCreator) : base(appStore) { this.downloadPlaceByIdActionCreator = downloadPlaceByIdActionCreator ?? throw new ArgumentNullException(nameof(downloadPlaceByIdActionCreator)); SetMapTypeFromAppSettings(); if (subscriptions.Count > 0) { return; } var placesListSub = appStore .DistinctUntilChanged(state => new { state.PlacesData.PlacesListState.Status }) .SubscribeWithError(state => { var placesList = state.PlacesData.PlacesListState.Value; if (placesList != null && state.PlacesData.PlacesListState.Status == Core.Enums.Status.Success) { UpdateMap(placesList); } else { IsBusy = true; } }, error => { appStore.Dispatch(new SetErrorAction(error, "MapViewModel in subscription.")); }); subscriptions.Add(placesListSub); }
public Bootstrapper( IStore <ApplicationState> appStore, IPermissionActionCreator permissionActionCreator, IDeviceLocationActionCreator deviceLocationActionCreator, IGetPlaceByIdActionCreator downloadPlaceByIdActionCreator, IGetPlacesListActionCreator downloadPlacesListActionCreator, ISettingsHelper settingsHelper, IErrorLogger errorLogger ) { this.appStore = appStore ?? throw new ArgumentNullException(nameof(appStore)); this.permissionActionCreator = permissionActionCreator ?? throw new ArgumentNullException(nameof(permissionActionCreator)); this.deviceLocationActionCreator = deviceLocationActionCreator ?? throw new ArgumentNullException(nameof(deviceLocationActionCreator)); this.downloadPlaceByIdActionCreator = downloadPlaceByIdActionCreator ?? throw new ArgumentNullException(nameof(downloadPlaceByIdActionCreator)); this.downloadPlacesListActionCreator = downloadPlacesListActionCreator ?? throw new ArgumentNullException(nameof(downloadPlacesListActionCreator)); this.settingsHelper = settingsHelper ?? throw new ArgumentNullException(nameof(settingsHelper)); this.errorLogger = errorLogger ?? throw new ArgumentNullException(nameof(errorLogger)); }