Beispiel #1
0
        private async void btnSubmit_Clicked(object sender, EventArgs e)
        {
            slForm.IsVisible     = false;
            aiActivity.IsRunning = true;
            var response = await RockClient.LogIn(username.Text, password.Text);

            switch (response)
            {
            case LoginResponse.Error:
                aiActivity.IsRunning = false;
                slForm.IsVisible     = true;
                App.Current.MainPage.DisplayAlert("Log-in Error", "There was an issue with your log-in attempt. Please try again later. (Sorry)", "OK");
                break;

            case LoginResponse.Failure:
                aiActivity.IsRunning = false;
                slForm.IsVisible     = true;
                App.Current.MainPage.DisplayAlert("Log-in Error", "Your username or password was incorrect.", "OK");
                break;

            case LoginResponse.Success:
                AvalancheNavigation.Footer = null;
                App.Current.MainPage       = new AvalanchePage();
                AvalancheNavigation.RequestNewRckipid();
                break;

            default:
                break;
            }
        }
Beispiel #2
0
        private async void btnPin_Clicked(object sender, EventArgs e)
        {
            slPin.IsVisible     = false;
            slLoading.IsVisible = true;

            var response = await RockClient.LogIn("__PHONENUMBER__+1" + phoneNumber, ePin.Text);

            switch (response)
            {
            case LoginResponse.Error:
                App.Current.MainPage.DisplayAlert("Log-in Error", "There was an issue with your log-in attempt. Please try again later. (Sorry)", "OK");
                slPin.IsVisible     = true;
                slLoading.IsVisible = false;
                break;

            case LoginResponse.Failure:
                App.Current.MainPage.DisplayAlert("Log-in Error", "Phone number and pin did not match. Please try again.", "OK");
                slPin.IsVisible     = true;
                slLoading.IsVisible = false;
                break;

            case LoginResponse.Success:
                AvalancheNavigation.Footer = null;
                App.Current.MainPage       = new AvalanchePage();
                AvalancheNavigation.RequestNewRckipid();
                break;

            default:
                break;
            }
        }
Beispiel #3
0
 public App()
 {
     InitializeComponent();
     System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls12;
     RockClient.CreateDatabase();
     MainPage = new AvalanchePage();
     Task.Factory.StartNew(new Action(backgroundAction));
 }
Beispiel #4
0
 public App()
 {
     InitializeComponent();
     RockClient.CreateDatabase();
     MainPage = new NavigationPage(new Avalanche.MainPage("home"));
     if (!App.Current.Properties.ContainsKey("SecondRun"))
     {
         MainPage.Navigation.PushModalAsync(new LaunchPage());
         App.Current.Properties["SecondRun"] = true;
     }
 }
 public MainPage(string resource, string parameter = "")
 {
     InitializeComponent();
     On <Xamarin.Forms.PlatformConfiguration.iOS>().SetUseSafeArea(true);
     observableResource.PropertyChanged += ObservableResource_PropertyChanged;
     if (!string.IsNullOrWhiteSpace(parameter))
     {
         resource += "/" + parameter;
     }
     Task.Run(() => { Handle_Timeout(); });
     RockClient.GetResource <MobilePage>(observableResource, "/api/avalanche/" + resource);
 }
 private void BackgroundAction()
 {
     if (Attributes.ContainsKey("Resources") && !string.IsNullOrWhiteSpace(Attributes["Resources"]))
     {
         ObservableResource <MobilePage> observableResource = new ObservableResource <MobilePage>();
         var resources = Attributes["Resources"].Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
         foreach (var resource in resources)
         {
             RockClient.GetResource(observableResource, resource);
         }
     }
 }
 public AvalanchePage()
 {
     Children.Clear();
     AvalancheNavigation.Footer = null;
     mainPage       = new MainPage();
     App.Navigation = new Xamarin.Forms.NavigationPage(mainPage);
     Children.Add(App.Navigation);
     observableResource.PropertyChanged += ObservableResource_PropertyChanged;
     RockClient.GetResource(observableResource, "/api/avalanche/home");
     if (!App.Current.Properties.ContainsKey("SecondRun"))
     {
         App.Navigation.Navigation.PushModalAsync(new LaunchPage());
         App.Current.Properties["SecondRun"] = true;
     }
 }
Beispiel #8
0
 public App()
 {
     if (App.Current.Properties.ContainsKey("SecondRun"))
     {
         DoAppStartup();
     }
     else
     {
         MainPage = new AvalanchePage();
     }
     InitializeComponent();
     System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls12;
     RockClient.CreateDatabase();
     MainPage = new AvalanchePage();
     Task.Factory.StartNew(new Action(backgroundAction));
 }
Beispiel #9
0
        public AvalanchePage()
        {
            observableResource.PropertyChanged += ObservableResource_PropertyChanged;
            RockClient.GetResource(observableResource, "/api/avalanche/home");
            mainPage = new MainPage();
            //App.Navigation = new Xamarin.Forms.NavigationPage( mainPage );
            //Children.Add( App.Navigation );

            /*
             * if ( !App.Current.Properties.ContainsKey( "SecondRun" ) )
             * {
             *  App.Navigation.Navigation.PushModalAsync( new LaunchPage() );
             *  App.Current.Properties["SecondRun"] = true;
             * }
             */
        }
Beispiel #10
0
 public async static void UpdateRckipid()
 {
     if (App.Current.Properties.ContainsKey("rckipid_expiration"))
     {
         DateTime?expiration = App.Current.Properties["rckipid_expiration"] as DateTime?;
         var      now        = TimeZoneInfo.ConvertTime(DateTime.UtcNow, TimeZoneInfo.Local);
         if (expiration != null && expiration > now)
         {
             RequestNewRckipid();
         }
     }
     else if (!string.IsNullOrWhiteSpace(await RockClient.GetAccessToken()))
     {
         RequestNewRckipid();
     }
 }
 public MainPage(string resource, string parameter = "")
 {
     InitializeComponent();
     Resource  = resource;
     Parameter = parameter;
     observableResource.PropertyChanged += ObservableResource_PropertyChanged;
     Task.Run(() => { Handle_Timeout(); });
     if (!string.IsNullOrWhiteSpace(parameter))
     {
         resource += "/" + parameter;
     }
     RockClient.GetResource <MobilePage>(observableResource, "/api/avalanche/" + resource);
     Content.Margin = new Thickness(
         AvalancheNavigation.SafeInset.Left,
         AvalancheNavigation.SafeInset.Top + AvalancheNavigation.YOffSet,
         AvalancheNavigation.SafeInset.Right,
         AvalancheNavigation.SafeInset.Bottom);
 }
Beispiel #12
0
        public void Send()
        {
            ObservableResource <Dictionary <string, string> > observableResource = new ObservableResource <Dictionary <string, string> >();
            var body = new Dictionary <string, string>()
            {
                { "Operation", Operation },
                { "InteractionSummary", InteractionSummary },
                { "InteractionData", InteractionData },
                { "PageTitle", PageTitle }
            };

            if (PageId != null)
            {
                body["PageId"] = PageId.ToString();
            }

            RockClient.PostResource(observableResource, "/api/avalanche/interaction", body);
        }
Beispiel #13
0
 public void Setup()
 {
     this.RockClient = new RockClient(_domainUrl, _apiToken);
 }
Beispiel #14
0
 public static void RequestNewRckipid()
 {
     rckipidResource = new ObservableResource <RckipidToken>();
     rckipidResource.PropertyChanged += RckipidResource_HandleResponse;
     RockClient.GetResource(rckipidResource, "/api/avalanche/token", true);
 }