private async Task RefreshClue() { try { IsBusy = true; var clues = await _dataService.GetCluesForTeamAsync(_settingsService.RaceId); var clue = clues.FirstOrDefault(c => c.Id == ClueId); if (clue.HasResponse()) { _response = await _dataService.GetClueResponse(ClueId); if (_response != null) { HasResponse = true; ImageUrl = _response.Data; } } if (!HasResponse || IsChanged) { if (ImageFile != null) { ImageUrl = ImageSource.FromStream(() => ImageFile.GetStream()); } } NotifyOfPropertyChange(() => CanSubmit); IsBusy = false; } catch { await _messageDialogService.ShowAsync("Something went wrong", "Couldn't get the details for this clue. Try again?"); } }