private void userflowClick(object sender,RoutedEventArgs e) {
     Button button = sender as Button;
     if (button != null) {
         Debug.Assert(button == userflowButton);
         String label = button.Content.ToString();
         if (label == beginUserflowLabel) {
             App.userflowName = userflowNames[random.Next(0,userflowNames.Length)];
             Crittercism.BeginUserflow(App.userflowName);
             // Broadcast UserflowEvent to all open windows. 
             App.OnUserflowEvent(EventArgs.Empty);
         } else if (label == endUserflowLabel) {
             EndUserflowDialog dialog = new EndUserflowDialog();
             dialog.Owner = Window.GetWindow(this);
             dialog.ShowDialog();
             Nullable<bool> dialogResult = dialog.DialogResult;
             if (dialogResult == true) {
                 switch (dialog.Answer) {
                     case "End Userflow":
                         Crittercism.EndUserflow(App.userflowName);
                         break;
                     case "Fail Userflow":
                         Crittercism.FailUserflow(App.userflowName);
                         break;
                     case "Cancel Userflow":
                         Crittercism.CancelUserflow(App.userflowName);
                         break;
                 };
                 App.userflowName = null;
                 // Broadcast UserflowEvent to all open windows. 
                 App.OnUserflowEvent(EventArgs.Empty);
             }
         }
     }
 }
示例#2
0
        public void TestStaticAPIFailUserflow()
        {
            // Test "Static API" "FailUserflow"
            string exampleName = "Purchase Crittercism SDK";

            // Resulting state of "FailUserflow" is correct.  It's required to "Begin" first.
            Crittercism.BeginUserflow(exampleName);
            Assert.IsTrue(Userflow.UserflowForName(exampleName).State() == UserflowState.BEGUN,
                          "Confirm BeginUserflow changes state to UserflowState.BEGUN");
            Crittercism.FailUserflow(exampleName);
            Assert.IsNull(Userflow.UserflowForName(exampleName),
                          "Confirm finished userflow no longer accessible");
        }
示例#3
0
        private void userflowButton_Click(object sender, EventArgs e)
        {
            Button button = sender as Button;

            if (button != null)
            {
                String label = button.Text;
                if (label == beginUserflowLabel)
                {
                    Program.userflowName = userflowNames[random.Next(0, userflowNames.Length)];
                    Crittercism.BeginUserflow(Program.userflowName);
                    // Broadcast UserflowEvent to all open windows.
                    Program.OnUserflowEvent(EventArgs.Empty);
                }
                else if (label == endUserflowLabel)
                {
                    EndUserflowDialog dialog = new EndUserflowDialog();
                    dialog.Owner = this;
                    dialog.ShowDialog();
                    if (dialog.DialogResult == DialogResult.Yes)
                    {
                        switch (dialog.Answer)
                        {
                        case "End Userflow":
                            Crittercism.EndUserflow(Program.userflowName);
                            break;

                        case "Fail Userflow":
                            Crittercism.FailUserflow(Program.userflowName);
                            break;

                        case "Cancel Userflow":
                            Crittercism.CancelUserflow(Program.userflowName);
                            break;
                        }
                        ;
                        Program.userflowName = null;
                        // Broadcast UserflowEvent to all open windows.
                        Program.OnUserflowEvent(EventArgs.Empty);
                    }
                }
            }
        }
 partial void FailLoginButton_TouchUpInside(UIButton sender)
 {
     Crittercism.FailUserflow("Login");
 }
 partial void FailPaymentButton_TouchUpInside(UIButton sender)
 {
     Crittercism.FailUserflow("Payment");
 }
 private void failUserflowClick(object sender, RoutedEventArgs e)
 {
     Crittercism.FailUserflow(Demo.userflowName);
     Demo.userflowName = null;
     GoBack();
 }
示例#7
0
        internal static void ItemClick(Frame frame, SampleDataItem item)
        {
            // Navigate to the appropriate destination page, configuring the new page
            // by passing required information as a navigation parameter
            string itemId = item.UniqueId;

            Debug.WriteLine("UniqueId == " + itemId);
            if (itemId.Equals("Set Username"))
            {
                Random   random = new Random();
                string[] names  = { "Blue Jay", "Chinchilla", "Chipmunk", "Gerbil", "Hamster", "Parrot", "Robin", "Squirrel", "Turtle" };
                string   name   = names[random.Next(0, names.Length)];
                Crittercism.SetUsername("Critter " + name);
            }
            else if (itemId.Equals("Leave Breadcrumb"))
            {
                Random   random = new Random();
                string[] names  = { "Breadcrumb", "Strawberry", "Seed", "Grape", "Lettuce" };
                string   name   = names[random.Next(0, names.Length)];
                Crittercism.LeaveBreadcrumb(name);
            }
            else if (itemId.Equals("Network Request"))
            {
                LogNetworkRequest();
            }
            else if (itemId.Equals("Handled Exception"))
            {
                {
                    try {
                        ThrowException();
                    } catch (Exception ex) {
                        Crittercism.LogHandledException(ex);
                    }
                }
            }
            else if (itemId.Equals("Begin Userflow"))
            {
                UserflowClick(frame, item);
            }
            else if (itemId.Equals("Crash"))
            {
                ThrowException();
            }
            else
            {
                // We are on "End Userflow" SectionPage .
                if (itemId.Equals("Succeed"))
                {
                    Crittercism.EndUserflow(userflowName);
                }
                else if (itemId.Equals("Fail"))
                {
                    Crittercism.FailUserflow(userflowName);
                }
                else if (itemId.Equals("Cancel"))
                {
                    Crittercism.CancelUserflow(userflowName);
                }
                ;
                userflowItem.Title = beginUserflowLabel;
                frame.GoBack();
            }
        }
示例#8
0
        protected override void OnCreate(Bundle bundle)
        {
            // Initialize Crittercism
            Crittercism.Init(ApplicationContext, "YOUR APP ID GOES HERE");

            base.OnCreate(bundle);

            SetContentView(Resource.Layout.Main);

            Button ButtonLeaveBreadcrumb = FindViewById <Button>(Resource.Id.ButtonBreadcrumb);

            ButtonLeaveBreadcrumb.Click += delegate(object sender, EventArgs e) {
                Crittercism.LeaveBreadcrumb("My Breadcrumb");
            };

            Button ButtonSetUserName = FindViewById <Button>(Resource.Id.ButtonSetUserName);

            ButtonSetUserName.Click += delegate {
                Crittercism.SetUserName("MrsCritter");
            };

            Button ButtonSetMetadata = FindViewById <Button>(Resource.Id.ButtonSetMetadata);

            ButtonSetMetadata.Click += delegate {
                Crittercism.SetMetadata("Game Level", "5");
            };

            Button ButtonCrash = FindViewById <Button>(Resource.Id.ButtonCrash);

            ButtonCrash.Click += delegate(object sender, EventArgs e) {
                CrashInnerException();
                //CrashDivideByZero();
                //CrashNullReference();
                //CrashIndexOutOfRange();
                //CrashCustomException();
            };

            Button ButtonHandledException = FindViewById <Button>(Resource.Id.ButtonHandledException);

            ButtonHandledException.Click += delegate(object sender, EventArgs e) {
                try {
                    CrashInnerException();
                } catch (System.Exception error) {
                    Crittercism.LogHandledException(error);
                }
            };

            Button ButtonLogNetworkRequest = FindViewById <Button>(Resource.Id.ButtonLogNetworkRequest);

            ButtonLogNetworkRequest.Click += delegate(object sender, EventArgs e) {
                Random   random  = new Random();
                string[] methods = { "GET", "POST", "HEAD" };
                string   method  = methods[random.Next(methods.Length)];
                string[] urls    = { "http://www.critterwebservice.com",
                                     "http://www.crittersearchengine.com/?ilove=critters",
                                     "http://www.critterdatingservice.com/nutlovers",
                                     "http://www.crittergourmetfood.com/nutsandberries.htm",
                                     "http://www.critterworldnews.com/summerfun",
                                     "http://www.crittermoviereviews.com/starring=mrscritter",
                                     "http://www.critterburrowdecor.com" };
                string   url           = urls[random.Next(urls.Length)];
                int[]    responseCodes = { 200, 202, 400, 404 };
                int      responseCode  = responseCodes[random.Next(responseCodes.Length)];
                Crittercism.LogNetworkRequest(
                    method,
                    url,
                    (long)(1000 * random.NextDouble()),
                    random.Next(10000),
                    random.Next(1000),
                    responseCode,
                    0);
            };

            Button ButtonBeginTransaction = FindViewById <Button>(Resource.Id.ButtonBeginTransaction);

            ButtonBeginTransaction.Click += delegate(object sender, EventArgs e) {
                Crittercism.BeginUserflow("Exercise");
            };

            Button ButtonEndTransaction = FindViewById <Button>(Resource.Id.ButtonEndTransaction);

            ButtonEndTransaction.Click += delegate(object sender, EventArgs e) {
                Crittercism.EndUserflow("Exercise");
            };

            Button ButtonFailTransaction = FindViewById <Button>(Resource.Id.ButtonFailTransaction);

            ButtonFailTransaction.Click += delegate(object sender, EventArgs e) {
                Crittercism.FailUserflow("Exercise");
            };

            Button ButtonSetTransactionValue = FindViewById <Button>(Resource.Id.ButtonSetTransactionValue);
            Button ButtonGetTransactionValue = FindViewById <Button>(Resource.Id.ButtonGetTransactionValue);

            ButtonSetTransactionValue.Click += delegate(object sender, EventArgs e) {
                Random random = new Random();
                Crittercism.SetUserflowValue("Exercise", random.Next(1000));
            };
            ButtonGetTransactionValue.Click += delegate(object sender, EventArgs e) {
                int value = Crittercism.GetUserflowValue("Exercise");
                ButtonGetTransactionValue.Text = value.ToString();
            };
        }