public void TestFriendSelectForm()
 {
     string jsonRpcCallId = "jsonrpc id 19347819";
     Messaging.SendFormRequest request = new Messaging.SendFormRequest ();
     request.Member = "*****@*****.**";
     request.ParentKey = null;
     request.Flags = 0;
     request.AlertFlags = 0;
     request.Branding = "A68EBEAB5C962B271BD236AAE6595E5C353B56A650F98B760026CAFA094DB8D1";
     request.Text = "Select your family members.";
     request.Tag = "my message tag19347819";
     request.Context = null;
     FriendSelectWidget widget = new FriendSelectWidget ();
     widget.SelectionRequired = true;
     widget.MultiSelect = true;
     request.Form.Widget = widget;
     request.Form.PositiveButtonCaption = "Next question";
     request.Form.NegativeButtonCaption = "Stop poll";
     request.Form.NegativeButtonConfirmation = "Do you really want to stop the poll?";
     Messaging.SendFormResponse response = this.Api.Send (request, jsonRpcCallId);
     Assert.IsNotNull (response.Result);
 }
            public void TestAdvancedOrderForm()
            {
                string jsonRpcCallId = "jsonrpc id 19347819";
                Messaging.SendFormRequest request = new Messaging.SendFormRequest ();
                request.Member = "*****@*****.**";
                request.ParentKey = null;
                request.Flags = 0;
                request.AlertFlags = 0;
                request.Branding = "A68EBEAB5C962B271BD236AAE6595E5C353B56A650F98B760026CAFA094DB8D1";
                request.Text = "Select the books you wish to order.";
                request.Tag = "my message tag19347819";
                request.Context = null;
                AdvancedOrderWidget widget = new AdvancedOrderWidget ();
                widget.Currency = "$";
                AdvancedOrderCategory category1 = new AdvancedOrderCategory ();
                category1.Id = "romance";
                category1.Name = "Romance";
                AdvancedOrderItem item11 = new AdvancedOrderItem ();
                item11.Id = "1";
                item11.Name = "Fifty Shades of Grey";
                item11.Description = "by E.L. James";
                item11.Value = 0;
                item11.Unit = "pc.";
                item11.UnitPrice = 999;
                item11.Step = 1;
                item11.StepUnit = "pc.";
                item11.StepUnitConversion = 1;
                item11.ImageUrl = "https://d2arxad8u2l0g7.cloudfront.net/books/1385207843l/10818853.jpg";
                item11.HasPrice = true;
                category1.Items.Add (item11);
                widget.Categories.Add (category1);
                AdvancedOrderCategory category2 = new AdvancedOrderCategory ();
                category2.Id = "horror";
                category2.Name = "Horror";
                AdvancedOrderItem item21 = new AdvancedOrderItem ();
                item21.Id = "2";
                item21.Name = "'Salem's Lot";
                item21.Description = "by Stephen King";
                item21.Value = 0;
                item21.Unit = "pc.";
                item21.UnitPrice = 799;
                item21.Step = 1;
                item21.StepUnit = "pc.";
                item21.StepUnitConversion = 1;
                item21.ImageUrl = "https://d2arxad8u2l0g7.cloudfront.net/books/1327891565l/11590.jpg";
                item21.HasPrice = true;
                category2.Items.Add (item21);
                widget.Categories.Add (category2);
                AdvancedOrderCategory category3 = new AdvancedOrderCategory ();
                category3.Id = "whodunit";
                category3.Name = "Whodunit";
                AdvancedOrderItem item31 = new AdvancedOrderItem ();
                item31.Id = "3";
                item31.Name = "Mirror Deep";
                item31.Description = "by Joss Landry";
                item31.Value = 0;
                item31.Unit = "pc.";
                item31.UnitPrice = 899;
                item31.Step = 1;
                item31.StepUnit = "pc.";
                item31.StepUnitConversion = 1;
                item31.ImageUrl = "https://d2arxad8u2l0g7.cloudfront.net/books/1368021554l/17901969.jpg";
                item31.HasPrice = true;
                category3.Items.Add (item31);
                widget.Categories.Add (category3);

                request.Form.Widget = widget;
                request.Form.PositiveButtonCaption = "Order";
                request.Form.NegativeButtonCaption = "Cancel";
                request.Form.NegativeButtonConfirmation = "Are you sure you wish to cancel?";
                Messaging.SendFormResponse response = this.Api.Send (request, jsonRpcCallId);
                Assert.IsNotNull (response.Result);
            }
 public void TestSignForm()
 {
     string jsonRpcCallId = "jsonrpc id 19347819";
     Messaging.SendFormRequest request = new Messaging.SendFormRequest ();
     request.Member = "*****@*****.**";
     request.ParentKey = null;
     request.Flags = 0;
     request.AlertFlags = 0;
     request.Branding = "A68EBEAB5C962B271BD236AAE6595E5C353B56A650F98B760026CAFA094DB8D1";
     request.Text = "Sign the attached documents.";
     request.Tag = "my message tag19347819";
     request.Context = null;
     SignWidget widget = new SignWidget ();
     widget.Payload = "VGhpcyBpcyB0aGUgcGF5bG9hZA==";
     widget.Caption = "Enter your security PIN code the sign the attached documents.";
     request.Form.Widget = widget;
     request.Form.PositiveButtonCaption = "Sign";
     request.Form.NegativeButtonCaption = "Cancel";
     request.Form.NegativeButtonConfirmation = "Are you sure you wish to cancel?";
     Attachment att = new Attachment ();
     att.ContentType = "application/pdf";
     att.DownloadUrl = "http://www.rogerthat.net/wp-content/uploads/2016/08/contract.pdf";
     att.Name = "New contract";
     request.Attachments.Add (att);
     Messaging.SendFormResponse response = this.Api.Send (request, jsonRpcCallId);
     Assert.IsNotNull (response.Result);
 }
 public void TestPhotoUploadForm()
 {
     string jsonRpcCallId = "jsonrpc id 19347819";
     Messaging.SendFormRequest request = new Messaging.SendFormRequest();
     request.Member = "*****@*****.**";
     request.ParentKey = null;
     request.Flags = 0;
     request.AlertFlags = 0;
     request.Branding = "A68EBEAB5C962B271BD236AAE6595E5C353B56A650F98B760026CAFA094DB8D1";
     request.Text = "Upload a photo of your member card.";
     request.Tag = "my message tag19347819";
     request.Context = null;
     PhotoUploadWidget widget = new PhotoUploadWidget();
     widget.Camera = true;
     widget.Gallery = false;
     widget.Quality = "1000000";
     widget.Ratio = "800x600";
     request.Form.Widget = widget;
     request.Form.PositiveButtonCaption = "Next question";
     request.Form.NegativeButtonCaption = "Stop poll";
     request.Form.NegativeButtonConfirmation = "Do you really want to stop the poll?";
     Messaging.SendFormResponse response = this.Api.Send(request, jsonRpcCallId);
     Assert.IsNotNull(response.Result);
 }
 public void TestMyDigiPassForm()
 {
     string jsonRpcCallId = "jsonrpc id 19347819";
     Messaging.SendFormRequest request = new Messaging.SendFormRequest ();
     request.Member = "*****@*****.**";
     request.ParentKey = null;
     request.Flags = 0;
     request.AlertFlags = 0;
     request.Branding = "A68EBEAB5C962B271BD236AAE6595E5C353B56A650F98B760026CAFA094DB8D1";
     request.Text = "Authenticate via MYDIGIPASS.";
     request.Tag = "my message tag19347819";
     request.Context = null;
     MyDigiPassWidget widget = new MyDigiPassWidget ();
     widget.Scope = "eid_profile eid_address eid_photo profile email phone address";
     request.Form.Widget = widget;
     request.Form.PositiveButtonCaption = "Submit";
     request.Form.NegativeButtonCaption = "Cancel";
     request.Form.NegativeButtonConfirmation = "Are you sure you wish to cancel?";
     Messaging.SendFormResponse response = this.Api.Send (request, jsonRpcCallId);
     Assert.IsNotNull (response.Result);
 }
 public void TestDateForm()
 {
     string jsonRpcCallId = "jsonrpc id 19347819";
     Messaging.SendFormRequest request = new Messaging.SendFormRequest();
     request.Member = "*****@*****.**";
     request.ParentKey = null;
     request.Flags = 0;
     request.AlertFlags = 0;
     request.Branding = "A68EBEAB5C962B271BD236AAE6595E5C353B56A650F98B760026CAFA094DB8D1";
     request.Text = "Select your date of birth.";
     request.Tag = "my message tag19347819";
     request.Context = null;
     DateSelectWidget widget = new DateSelectWidget();
     widget.Mode = DateSelectMode.DATE;
     widget.MaxDate = 4102358400;
     widget.MinDate = -2208988800;
     widget.Unit = "Date of birth: <value/>";
     widget.MinuteInterval = DateSelectMinuteInterval.INTERVAL_30;
     widget.Date = 1407715200;
     request.Form.Widget = widget;
     request.Form.PositiveButtonCaption = "Next question";
     request.Form.NegativeButtonCaption = "Stop poll";
     request.Form.NegativeButtonConfirmation = "Do you really want to stop the poll?";
     Messaging.SendFormResponse response = this.Api.Send(request, jsonRpcCallId);
     Assert.IsNotNull(response.Result);
 }
 public void TestMultiSelectForm()
 {
     string jsonRpcCallId = "jsonrpc id 19347819";
     Messaging.SendFormRequest request = new Messaging.SendFormRequest();
     request.Member = "*****@*****.**";
     request.ParentKey = null;
     request.Flags = 0;
     request.AlertFlags = 0;
     request.Branding = "A68EBEAB5C962B271BD236AAE6595E5C353B56A650F98B760026CAFA094DB8D1";
     request.Text = "Which fiction do you like?";
     request.Tag = "my message tag19347819";
     request.Context = null;
     MultiSelectWidget widget = new MultiSelectWidget();
     List<string> Values = new List<string>();
     Values.Add("1");
     Values.Add("2");
     widget.Values = Values;
     List<Choice> Choices = new List<Choice>();
     Choice choice = new Choice();
     choice.Label = "Romance";
     choice.Value = "1";
     Choices.Add(choice);
     Choice choice2 = new Choice();
     choice2.Label = "Horror";
     choice2.Value = "2";
     Choices.Add(choice2);
     Choice choice3 = new Choice();
     choice3.Label = "Whodunit";
     choice3.Value = "3";
     Choices.Add(choice3);
     widget.Choices = Choices;
     request.Form.Widget = widget;
     request.Form.PositiveButtonCaption = "Next question";
     request.Form.NegativeButtonCaption = "Stop poll";
     request.Form.NegativeButtonConfirmation = "Do you really want to stop the poll?";
     Messaging.SendFormResponse response = this.Api.Send(request, jsonRpcCallId);
     Assert.IsNotNull(response.Result);
 }
 public void TestSendSingleSliderForm()
 {
     string jsonRpcCallId = "jsonrpc id 19347819";
     Messaging.SendFormRequest request = new Messaging.SendFormRequest();
     request.Member = "*****@*****.**";
     request.ParentKey = null;
     request.Flags = 0;
     request.AlertFlags = 0;
     request.Branding = "A68EBEAB5C962B271BD236AAE6595E5C353B56A650F98B760026CAFA094DB8D1";
     request.Text = "How much would you pay for this service?";
     request.Tag = "my message tag19347819";
     request.Context = null;
     SingleSliderWidget widget = new SingleSliderWidget();
     widget.Min = 0.0;
     widget.Max = 10.0;
     widget.Step = 0.5;
     widget.Value = 5.0;
     widget.Precision = 2;
     widget.Unit = "$<value/> per month";
     request.Form.Widget = widget;
     request.Form.PositiveButtonCaption = "Next question";
     request.Form.NegativeButtonCaption = "Stop poll";
     request.Form.NegativeButtonConfirmation = "Do you really want to stop the poll?";
     Messaging.SendFormResponse response = this.Api.Send(request, jsonRpcCallId);
     Assert.IsNotNull(response.Result);
 }
 public void TestSendAutoCompleteForm()
 {
     string jsonRpcCallId = "jsonrpc id 19347819";
     Messaging.SendFormRequest request = new Messaging.SendFormRequest();
     request.Member = "*****@*****.**";
     request.ParentKey = null;
     request.Flags = 0;
     request.AlertFlags = 0;
     request.Branding = "A68EBEAB5C962B271BD236AAE6595E5C353B56A650F98B760026CAFA094DB8D1";
     request.Text = "Who is your favourite author?";
     request.Tag = "my message tag19347819";
     request.Context = null;
     AutoCompleteWidget widget = new AutoCompleteWidget();
     widget.MaxChars = 30;
     widget.PlaceHolder = "Enter author";
     widget.Value = null;
     widget.Suggestions = new List<string>();
     widget.Suggestions.Add("Shakespeare");
     widget.Suggestions.Add("Steve Jobs");
     widget.Suggestions.Add("Suzanne Collins");
     request.Form.Widget = widget;
     request.Form.PositiveButtonCaption = "Next question";
     request.Form.NegativeButtonCaption = "Stop poll";
     request.Form.NegativeButtonConfirmation = "Do you really want to stop the poll?";
     Messaging.SendFormResponse response = this.Api.Send(request, jsonRpcCallId);
     Assert.IsNotNull(response.Result);
 }
 private void ValidateSendForm(string message, string positiveButton, string negativeButton, 
                               string negativeConfirmation, Widget widget)
 {
     string jsonRpcCallId = "jsonrpc id 19347819";
     Messaging.SendFormRequest request = new Messaging.SendFormRequest();
     request.Member = "*****@*****.**";
     request.ParentKey = null;
     request.Flags = 0;
     request.AlertFlags = 0;
     request.Branding = "A68EBEAB5C962B271BD236AAE6595E5C353B56A650F98B760026CAFA094DB8D1";
     request.Text = message;
     request.Tag = "my message tag19347819";
     request.Context = null;
     request.Form.Widget = widget;
     request.Form.PositiveButtonCaption = positiveButton;
     request.Form.NegativeButtonCaption = negativeButton;
     request.Form.NegativeButtonConfirmation = negativeConfirmation;
     Messaging.SendFormResponse response = this.Api.Send(request, jsonRpcCallId);
     Assert.AreEqual("4d2e8c4b-b23a-4b5b-86b3-368158aa64fe", response.Result);
 }