private Messaging.FlowMemberResultResponse onFlowMemberResult(Messaging.FlowMemberResultRequest request) { Messaging.FlowMemberResultResponse response = new Messaging.FlowMemberResultResponse(); switch (request.Tag) { case "static": case "mfr": foreach (MessageFlowStep step in request.Steps) { if ("message_gps_location".Equals(step.StepId)) { LocationWidgetResult formResult = (step as FormFlowStep).Result.Widget as LocationWidgetResult; MessageCallbackResult callback = new MessageCallbackResult(); callback.Flags = MessageFlag.ALLOW_DISMISS.Value | MessageFlag.AUTO_SEAL.Value; callback.Tag = "mfr2"; callback.Text = String.Format("Received locationResult:\n({0:F3}, {1:F3}) +/- {2:F2}m", formResult.Latitude, formResult.Longitude, formResult.HorizontalAccuracy); callback.DismissButtonUiFlags = UiFlag.WAIT_FOR_NEXT_MESSAGE.Value; response.Result = callback; break; } break; } break; case "mfr3": { MessageCallbackResult callback = new MessageCallbackResult (); callback.Flags = MessageFlag.ALLOW_DISMISS.Value | MessageFlag.AUTO_SEAL.Value; callback.Tag = null; callback.Text = "Congrats, you reached the end of the flow"; response.Result = callback; break; } default: break; } return response; }
private Messaging.FormUpdateResponse onFormUpdate(Messaging.FormUpdateRequest request) { Messaging.FormUpdateResponse response = new Messaging.FormUpdateResponse(); switch (request.Tag) { case "form": if (request.FormResult != null) { LocationWidgetResult formResult = request.FormResult.Widget as LocationWidgetResult; MessageCallbackResult callback = new MessageCallbackResult (); callback.Flags = MessageFlag.ALLOW_DISMISS.Value | MessageFlag.AUTO_SEAL.Value; callback.Tag = "form1"; callback.Text = String.Format ("Received locationResult:\n({0:F3}, {1:F3}) +/- {2:F2}m", formResult.Latitude, formResult.Longitude, formResult.HorizontalAccuracy); response.Result = callback; } break; default: break; } return response; }