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 static NextStateActionOfIncident CreateNextStateAction(JObject actionJsonObject) { NextStateActionOfIncident createdAction = null; try { Uri parsedUrl = new Uri(actionJsonObject.Value <string>(GeobrokerActionConstants.urlProperty)); OneTimeActionTaskState parsedPlannedState = (OneTimeActionTaskState)Enum.Parse(typeof(OneTimeActionTaskState), actionJsonObject.Value <string>(GeobrokerActionConstants.additionalDataProperty)); createdAction = new NextStateActionOfIncident(parsedUrl, parsedPlannedState); } catch (ArgumentException e) { Console.WriteLine("Failed to build one-time-action from received JSON."); Console.WriteLine(e.ToString()); } catch (UriFormatException e) { Console.WriteLine("Failed to create URL of one-time-action."); Console.WriteLine(e.ToString()); } return(createdAction); }
private static string CreateSuccessMessageForPlannedState(OneTimeActionTaskState plannedState) { return(plannedState == OneTimeActionTaskState.DETACHED ? "Der Status wurde erfolgreich auf 'Einsatz beendet' gesetzt." : $"Der Status wurde erfolgreich auf '{plannedState}' gesetzt."); }
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"); }
public NextStateActionOfIncident(Uri url, OneTimeActionTaskState plannedState) { Url = url; PlannedState = plannedState; }