async void LogHandledException1Button_TouchUpInside(object sender, EventArgs args)
        {
            try
            {
                throw new ArgumentNullException("aParam", "This is a purposed handled exception");
            }
            catch (Exception ex)
            {
                LimitedExtraDataList extraDataList = new LimitedExtraDataList();
                extraDataList.AddWithKey("HandledExceptionKey1", "HandledExceptionValue1");
                MintLogResult logResult = await Mint.SharedInstance.LogExceptionAsync(ex.ToSplunkNSException(), extraDataList);

                Debug.WriteLine("Logged Exception Request: {0}", logResult.ClientRequest);
            }
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            // Perform any additional setup after loading the view, typically from a nib.

            if (session == null)
            {
                session = InitBackgroundSession();
            }

            LogHandledException1Button.TouchUpInside += LogHandledException1Button_TouchUpInside;
            LogHandledException2Button.TouchUpInside += LogHandledException2Button_TouchUpInside;
            WebRequestButton.TouchUpInside           += WebRequestRestPostButton_TouchUpInside;
            HTTPClientButton.TouchUpInside           += HttpClientRestPostButton_TouchUpInside;
            LogEventWithTagButton.TouchUpInside      += LogLevelEventButton_TouchUpInside;
            ModernHttpClientButton.TouchUpInside     += ModernHttpClientButton_TouchUpInside;
            StartSessionButton.TouchUpInside         += StartSessionButton_TouchUpInside;
            CloseSessionButton.TouchUpInside         += CloseSessionButton_TouchUpInside;
            FlushButton.TouchUpInside            += FlushButton_TouchUpInside;
            StartTransactionButton.TouchUpInside += StartTransactionButton_TouchUpInside;
            StopTransactionButton.TouchUpInside  += StopTransactionButton_TouchUpInside;
            NSUrlSessionButton.TouchUpInside     += NSUrlSessionButton_TouchUpInside;
            NSUrlConnectionButton.TouchUpInside  += NSUrlConnectionButton_TouchUpInside;
            UnobservedTaskButton.TouchUpInside   += TaskUnawaitedMethod;

            Mint.SharedInstance.HandleUnobservedException = (Exception arg) => {
                return(true);
            };

            Mint.SharedInstance.CachedRequestsSent += (sender, args) =>
            {
                LoggedRequestEventArgs loggedRequestEventArgs = (LoggedRequestEventArgs)sender;
                Debug.WriteLine("Logged Request Handled {0} with JSON:\r\n{1}",
                                loggedRequestEventArgs.ResponseResult.ResultState == MintResultState.OKResultState
                                        ? "Successfully" : "with Failure and",
                                loggedRequestEventArgs.ResponseResult.ClientRequest);
                ShowAlert("CachedRequestsSent");
            };

            Mint.SharedInstance.NetworkDataIntercepted += (sender, args) =>
            {
                NetworkDataFixture networkDataFixture = (NetworkDataFixture)sender;
                Debug.WriteLine("Network Data Logged: {0}", networkDataFixture.ToJSONString);
                ShowAlert("NetworkDataIntercepted");
            };

            Mint.SharedInstance.AddExtraData(new ExtraData("GlobalKey1", "GlobalValue1"));

            LimitedExtraDataList extraDataList = new LimitedExtraDataList();

            extraDataList.AddWithKey("ListGlobalKey1", "ListGlobalValue1");

            Mint.SharedInstance.AddExtraDataList(extraDataList);

            Mint.SharedInstance.ClearExtraData();

            LimitedExtraDataList globalExtraDataList = Mint.SharedInstance.ExtraDataList;

            Mint.SharedInstance.ExtraDataList.AddWithKey("GlobalKey1", "GlobalValue1");

            Mint.SharedInstance.ExtraDataList.Add(new ExtraData("GlobalExtraKey1", "GlobalExtraValue1"));

            Mint.SharedInstance.RemoveExtraDataWithKey("GlobalKey1");

            Mint.SharedInstance.ClearBreadcrumbs();

            Mint.SharedInstance.LeaveBreadcrumb("SplunkMint-iOS.ClientAppViewController:ViewDidLoad");

            Mint.SharedInstance.UserIdentifier = "*****@*****.**";

            Mint.SharedInstance.AddURLToBlacklist("splunk");
        }
		public override void ViewDidLoad ()
		{
			base.ViewDidLoad ();

			// Perform any additional setup after loading the view, typically from a nib.

			if (session == null)
				session = InitBackgroundSession ();

			LogHandledException1Button.TouchUpInside += LogHandledException1Button_TouchUpInside;
			LogHandledException2Button.TouchUpInside += LogHandledException2Button_TouchUpInside;
			WebRequestButton.TouchUpInside += WebRequestRestPostButton_TouchUpInside;
			HTTPClientButton.TouchUpInside += HttpClientRestPostButton_TouchUpInside;
			LogEventWithTagButton.TouchUpInside += LogLevelEventButton_TouchUpInside;
			ModernHttpClientButton.TouchUpInside += ModernHttpClientButton_TouchUpInside;
			StartSessionButton.TouchUpInside += StartSessionButton_TouchUpInside;
			CloseSessionButton.TouchUpInside += CloseSessionButton_TouchUpInside;
			FlushButton.TouchUpInside += FlushButton_TouchUpInside;
			StartTransactionButton.TouchUpInside += StartTransactionButton_TouchUpInside;
			StopTransactionButton.TouchUpInside += StopTransactionButton_TouchUpInside;
			NSUrlSessionButton.TouchUpInside += NSUrlSessionButton_TouchUpInside;
			NSUrlConnectionButton.TouchUpInside += NSUrlConnectionButton_TouchUpInside;
			UnobservedTaskButton.TouchUpInside += TaskUnawaitedMethod;

			Mint.SharedInstance.HandleUnobservedException = (Exception arg) => {
				return true;
			};

			Mint.SharedInstance.CachedRequestsSent += (sender, args) =>
			{
				LoggedRequestEventArgs loggedRequestEventArgs = (LoggedRequestEventArgs)sender;
				Debug.WriteLine ("Logged Request Handled {0} with JSON:\r\n{1}",
					loggedRequestEventArgs.ResponseResult.ResultState == MintResultState.OKResultState
					? "Successfully" : "with Failure and",
					loggedRequestEventArgs.ResponseResult.ClientRequest);
				ShowAlert("CachedRequestsSent");
			};

			Mint.SharedInstance.NetworkDataIntercepted += (sender, args) => 
			{
				NetworkDataFixture networkDataFixture = (NetworkDataFixture)sender;
				Debug.WriteLine("Network Data Logged: {0}", networkDataFixture.ToJSONString);
				ShowAlert("NetworkDataIntercepted");
			};

			Mint.SharedInstance.AddExtraData(new ExtraData("GlobalKey1", "GlobalValue1"));

			LimitedExtraDataList extraDataList = new LimitedExtraDataList ();
			extraDataList.AddWithKey ("ListGlobalKey1", "ListGlobalValue1");

			Mint.SharedInstance.AddExtraDataList (extraDataList);

			Mint.SharedInstance.ClearExtraData ();

			LimitedExtraDataList globalExtraDataList = Mint.SharedInstance.ExtraDataList;

			Mint.SharedInstance.ExtraDataList.AddWithKey ("GlobalKey1", "GlobalValue1");

			Mint.SharedInstance.ExtraDataList.Add(new ExtraData("GlobalExtraKey1", "GlobalExtraValue1"));

			Mint.SharedInstance.RemoveExtraDataWithKey ("GlobalKey1");

			Mint.SharedInstance.ClearBreadcrumbs ();

			Mint.SharedInstance.LeaveBreadcrumb ("SplunkMint-iOS.ClientAppViewController:ViewDidLoad");

			Mint.SharedInstance.UserIdentifier = "*****@*****.**";

			Mint.SharedInstance.AddURLToBlacklist ("splunk");
		}
		async void LogHandledException1Button_TouchUpInside (object sender, EventArgs args)
		{
			try
			{
				throw new ArgumentNullException("aParam", "This is a purposed handled exception");
			}
			catch (Exception ex)
			{
				LimitedExtraDataList extraDataList = new LimitedExtraDataList ();
				extraDataList.AddWithKey ("HandledExceptionKey1", "HandledExceptionValue1");
				MintLogResult logResult = await Mint.SharedInstance.LogExceptionAsync (ex.ToSplunkNSException(), extraDataList);

				Debug.WriteLine("Logged Exception Request: {0}", logResult.ClientRequest);
			}
		}