private Messaging.PokeResponse onPoke(Messaging.PokeRequest request)
        {
            Messaging.PokeResponse response = new Messaging.PokeResponse();

            switch (request.Tag)
            {
            case "mfr":
                FlowCallbackResult flowResult = new FlowCallbackResult();
                flowResult.Flow = FLOW_GPS;
                flowResult.Tag = request.Tag;
                response.Result = flowResult;
                break;
            case "form":
                {
                    GpsLocationWidget gpsLocationWidget = new GpsLocationWidget ();
                    gpsLocationWidget.Gps = false;

                    FormCallbackResult formResult = new FormCallbackResult ();
                    formResult.Form = new Form ();
                    formResult.Tag = request.Tag;
                    formResult.Text = "Submit your location";
                    formResult.Form.PositiveButtonCaption = "Submit";
                    formResult.Form.NegativeButtonCaption = "Cancel";
                    formResult.Form.PositiveButtonUiFlags = UiFlag.WAIT_FOR_NEXT_MESSAGE.Value;
                    formResult.Form.Widget = gpsLocationWidget;
                    response.Result = formResult;
                    break;
                }
            case "test1":
                {
                    TextLineWidget textLineWidget = new TextLineWidget ();
                    textLineWidget.MaxChars = 50;
                    FormCallbackResult formResult = new FormCallbackResult();
                    formResult.Form = new Form();
                    formResult.Tag = request.Tag;
                    formResult.Text = "test 123";
                    formResult.Form.PositiveButtonCaption = "Submit";
                    formResult.Form.NegativeButtonCaption = "Cancel";
                    formResult.Form.PositiveButtonUiFlags = UiFlag.WAIT_FOR_NEXT_MESSAGE.Value;
                    formResult.Form.Widget = textLineWidget;
                    response.Result = formResult;
                    break;
                }
            default:
                break;
            }

            return response;
        }
 private Messaging.UpdateResponse onMessageUpdate(Messaging.UpdateRequest request)
 {
     Messaging.UpdateResponse response = new Messaging.UpdateResponse ();
     switch (request.Tag)
     {
     case "mfr2":
         FlowCallbackResult callback = new FlowCallbackResult ();
         callback.Flow = System.IO.File.ReadAllText("testflow.xml");
         callback.Tag = "mfr3";
         response.Result = callback;
         break;
     default:
         break;
     }
     return response;
 }