// TODO: Disable primary action button until data is loaded protected override async Task ExecutePrimaryActionAsync() { await base.ExecutePrimaryActionAsync(); if (await AppDataService.TryGetValidationSessionByIdAsync(ViewModel.Id) == null) { await AppDataService.AddValidationSessionAsync(Mapper.Map <ValidationSessionDetailViewModel, ValidationSession>(ViewModel)); } await PermissionService.CheckAndRequestPermissionIfRequiredAsync(Permission.Location) .ContinueIfTrueWith(() => { Helper.RunOnMainThreadIfRequired(() => { NavigationService.NavigateToMapAsync(ViewModel.Id, ViewModel.Name); }); }); }