private void ReportFinishedStateChange(NextStateActionResultCode resultCode, OneTimeActionTaskState plannedState) { IReadOnlyList <Page> stack = Navigation.NavigationStack; if (stack.Count > 0 && stack[stack.Count - 1].GetType() == typeof(StatusSendingModalPage)) { Device.BeginInvokeOnMainThread(async() => { await ShowStateChangeFeedback(resultCode, plannedState); }); } }
private async Task ShowStateChangeFeedback(NextStateActionResultCode resultCode, OneTimeActionTaskState plannedState) { await Navigation.PopToRootAsync(); string resultMessage; switch (resultCode) { case NextStateActionResultCode.SUCCESS: resultMessage = CreateSuccessMessageForPlannedState(plannedState); break; case NextStateActionResultCode.ACTION_ID_OUTDATED: resultMessage = "Der Status konnte nicht gesetzt werden. Der Status wurde bereits von der Leitstelle verändert." + pleaseTryAgain; break; default: resultMessage = $"Der Status konnte nicht gesetzt werden. Der interne Fehlercode ist: {resultCode}." + pleaseTryAgain; break; } await DisplayAlert("Statusänderung", resultMessage, "OK"); }