public TrackDetailViewModel(IRepoManager repoManager, INavigation navigation, IMotiveConfiguration motiveConfig, TrackEntry trackEntry) { _repoManager = repoManager ?? throw new ArgumentNullException(nameof(repoManager)); _navigation = navigation ?? throw new ArgumentNullException(nameof(navigation)); _trackEntry = trackEntry ?? throw new ArgumentNullException(nameof(trackEntry)); _motiveConfig = motiveConfig ?? throw new ArgumentNullException(nameof(Motive)); TransportationModeEntry modeEntry = _repoManager.TransportationModeRepository.GetLastWithTrackEntry(_trackEntry.Id); TransportModeSelectionCommand = new Command(async() => { await _navigation.PushModalAsync(new NavigationPage(new TransportSelectionPage(_trackEntry))); }); OpenTrackMotiveCommand = new Command(async() => { TrackDetailMotivePage motivePage = new TrackDetailMotivePage(Motive); await _navigation.PushModalAsync(new NavigationPage(motivePage)); }); DataItems = new ObservableRangeCollection <ListItem>(); if (_motiveConfig.Tracks) { PrepareForMotive(); } CompletedTransport = modeEntry != null; }
public StopDetailViewModel(IMotiveConfiguration motiveConfig, IRepoManager repoManager, INavigation navigation, StopVisit stopVisit) { _repoManager = repoManager ?? throw new ArgumentNullException(nameof(repoManager)); _stopVisit = stopVisit ?? throw new ArgumentNullException(nameof(stopVisit)); _navigation = navigation ?? throw new ArgumentNullException(nameof(navigation)); _motiveConfig = motiveConfig ?? throw new ArgumentNullException(nameof(motiveConfig)); StopVisit = new StopVisitViewModel(stopVisit); OpenStopNameCommand = new Command(async() => { StopDetailNamePage namePage = new StopDetailNamePage(StopVisit); await OpenPage(namePage); }); OpenStopMotiveCommand = new Command(async() => { StopDetailMotivePage motivePage = new StopDetailMotivePage(Motive); await OpenPage(motivePage); }); DataItems = new ObservableRangeCollection <ListItem>(); StopName = StopNameFromString(StopVisit.Name); CompletedName = !string.IsNullOrEmpty(StopVisit.Name); StopVisit.PropertyChanged += StopVisit_PropertyChanged; if (_motiveConfig.Stops) { PrepareForMotive(); } }
public AbstractMotiveViewModel(Motive motive, IMotiveConfiguration motiveConfiguration) { _motive = motive ?? throw new ArgumentNullException(nameof(motive)); _motiveConfiguration = motiveConfiguration ?? throw new ArgumentNullException(nameof(motiveConfiguration)); ResetViewModel(); PropertyChanged += (sender, e) => { if (e.PropertyName == nameof(Text)) { OnPropertyChanged(nameof(ConvertedText)); } }; }
public TrackMotiveViewModel(Motive motive, IMotiveConfiguration motiveConfiguration) : base(motive, motiveConfiguration) { }