async private void LoadMore()
        {
            string sAccessToken = Joyces.Helpers.Settings.AccessToken;

            moreList = await RestAPI.GetMore(sAccessToken);
        }
示例#2
0
        async private void LoginButton_Click(object sender, EventArgs e)
        {
            Console.WriteLine("Login button clicked");
            progress.Show();

            Console.WriteLine("Progress Show exited");

            EditText txtEmail  = FindViewById <EditText>(Resource.Id.EmailEditText);
            string   sUsername = txtEmail.Text;

            EditText txtPassword = FindViewById <EditText>(Resource.Id.PasswordEditText);
            string   sPassword   = txtPassword.Text;

            var tokenModel = await RestAPI.GetUserToken(sUsername, sPassword);

            if (tokenModel != null && tokenModel is TokenModel)
            {
                //Om allt går som det ska, så ska den komma in hit!
                Joyces.Helpers.Settings.AccessToken = ((TokenModel)tokenModel).access_token;
                Joyces.Helpers.Settings.UserEmail   = sUsername;
                if (((TokenModel)tokenModel).expires_in != null)
                {
                    Joyces.Helpers.Settings.AccessTokenExpiration = ((TokenModel)tokenModel).expires_in.ToString();
                }

                Joyces.Platform.AppContext.Instance.Platform.CustomerId = sUsername;
                var getCustomer = await RestAPI.GetCustomer(sUsername, ((TokenModel)tokenModel).access_token);

                if (getCustomer == null)
                {
                    Joyces.Helpers.Settings.AccessToken           = string.Empty;
                    Joyces.Helpers.Settings.UserEmail             = string.Empty;
                    Joyces.Helpers.Settings.AccessTokenExpiration = string.Empty;
                    Alert(Lang.MESSAGE_HEADLINE, Lang.UNEXPECTED_ERROR, Lang.BUTTON_OK);

                    progress.Hide();

                    return;
                }
                else if (getCustomer is Customer)
                {
                    //Always set new token here.
                    //((TokenModel)tokenModel).access_token = Helpers.Settings.AccessToken;
                    // Task.Run(async () => await LoadApp());

                    Joyces.Platform.AppContext.Instance.Platform.CustomerList = (Customer)getCustomer;
                    if (Joyces.Platform.AppContext.Instance.Platform.CustomerList != null)
                    {
                        await SetCustomerSetting();
                    }

                    var resp = await RestAPI.GetOffer(sUsername, Joyces.Helpers.Settings.AccessToken);

                    if (resp != null && resp is List <Offer> )
                    {
                        Joyces.Platform.AppContext.Instance.Platform.OfferList = (List <Offer>)resp;
                        await SetOfferSetting();
                    }
                    else
                    {
                        Joyces.Platform.AppContext.Instance.Platform.OfferList = null;
                    }

                    resp = await RestAPI.GetNews(sUsername, Joyces.Helpers.Settings.AccessToken);

                    if (resp != null && resp is List <News> )
                    {
                        Joyces.Platform.AppContext.Instance.Platform.NewsList = (List <News>)resp;
                        await SetNewsSetting();
                    }
                    else
                    {
                        Joyces.Platform.AppContext.Instance.Platform.NewsList = null;
                    }

                    Joyces.Platform.AppContext.Instance.Platform.MoreList = await RestAPI.GetMore(Joyces.Helpers.Settings.AccessToken);

                    if (Joyces.Platform.AppContext.Instance.Platform.MoreList != null)
                    {
                        await SetMoreSetting();
                    }
                    Joyces.Helpers.Settings.UserAccountNo = Joyces.Platform.AppContext.Instance.Platform.CustomerList.accountNumber;

                    progress.Hide();

                    var t = Task.Run(async() => await LoadApp());
                }
                else if (getCustomer is AbalonErrors)
                {
                    var localError = (AbalonErrors)getCustomer;

                    Joyces.Helpers.Settings.AccessToken = string.Empty;
                    Joyces.Helpers.Settings.UserEmail   = string.Empty;

                    Alert(Lang.ERROR_HEADLINE, localError.message, Lang.BUTTON_OK);

                    progress.Hide();
                }
            }
            else if (tokenModel != null && tokenModel is AbalonErrors)
            {
                //Hit kommer den om ett fel returneras från Abalon
                progress.Hide();

                Joyces.Helpers.Settings.AccessToken = string.Empty;
                Joyces.Helpers.Settings.UserEmail   = string.Empty;

                if (((AbalonErrors)tokenModel).error_description.Contains("PRE_AUTHENTICATION"))
                {
                    ((AbalonErrors)tokenModel).error_description = Lang.NOT_ACTIVATED_MEMBER;
                }

                Alert(Lang.ERROR_HEADLINE, ((AbalonErrors)tokenModel).error_description.Replace("@carbon.super", ""), Lang.BUTTON_OK);
            }
            else
            {
                //Vid all sorts exception kommer den hit och visar UNEXPECTED_ERROR!
                progress.Hide();

                Joyces.Helpers.Settings.AccessToken = string.Empty;
                Joyces.Helpers.Settings.UserEmail   = string.Empty;

                Alert(Lang.ERROR_HEADLINE, Lang.WRONG_PASSWORD, Lang.BUTTON_OK);
            }
        }
        //Login button
        async partial void BtnLogin_TouchUpInside(UIButton sender)
        {
            var bounds = UIScreen.MainScreen.Bounds;

            loadPop = new LoadingOverlay(bounds);
            View.Add(loadPop);

            string sUsername = txtName.Text;
            string sPassword = txtPassword.Text;

            var tokenModel = await RestAPI.GetUserToken(sUsername, sPassword);



            if (tokenModel != null && tokenModel is TokenModel)
            {
                //Om allt går som det ska, så ska den komma in hit!
                Joyces.Helpers.Settings.AccessToken = ((TokenModel)tokenModel).access_token;
                Joyces.Helpers.Settings.UserEmail   = sUsername;

                Joyces.Platform.AppContext.Instance.Platform.CustomerId = sUsername;
                var getCustomer = await RestAPI.GetCustomer(sUsername, Joyces.Helpers.Settings.AccessToken);

                if (getCustomer == null)
                {
                    Joyces.Helpers.Settings.AccessToken = string.Empty;
                    Joyces.Helpers.Settings.UserEmail   = string.Empty;

                    UIAlertView _error = new UIAlertView(Lang.ERROR_HEADLINE, Lang.UNEXPECTED_ERROR, null, Lang.BUTTON_OK, null);
                    _error.Show();

                    loadPop.Hide();
                }
                else if (getCustomer is Customer)
                {
                    //Always set new token here.
                    ((TokenModel)tokenModel).access_token = Joyces.Helpers.Settings.AccessToken;

                    Joyces.Platform.AppContext.Instance.Platform.CustomerList = (Customer)getCustomer;

                    var resp = await RestAPI.GetOffer(sUsername, Joyces.Helpers.Settings.AccessToken);

                    if (resp != null && resp is List <Offer> )
                    {
                        Joyces.Platform.AppContext.Instance.Platform.OfferList = (List <Offer>)resp;
                    }
                    else
                    {
                        Joyces.Platform.AppContext.Instance.Platform.OfferList = null;
                    }

                    resp = await RestAPI.GetNews(sUsername, Joyces.Helpers.Settings.AccessToken);

                    if (resp != null && resp is List <Joyces.News> )
                    {
                        Joyces.Platform.AppContext.Instance.Platform.NewsList = (List <Joyces.News>)resp;
                    }
                    else
                    {
                        Joyces.Platform.AppContext.Instance.Platform.NewsList = null;
                    }


                    Joyces.Platform.AppContext.Instance.Platform.MoreList = await RestAPI.GetMore(Joyces.Helpers.Settings.AccessToken);

                    loadPop.Hide();

                    Joyces.Helpers.Settings.UserAccountNo = Joyces.Platform.AppContext.Instance.Platform.CustomerList.accountNumber;

                    var x = new MenuTabBarController(this.Handle);
                    x.PerformSegue("segueMenu", this);
                }
                else if (getCustomer is AbalonErrors)
                {
                    var localError = (AbalonErrors)getCustomer;

                    Joyces.Helpers.Settings.AccessToken = string.Empty;
                    Joyces.Helpers.Settings.UserEmail   = string.Empty;

                    UIAlertView _error = new UIAlertView(Lang.MESSAGE_HEADLINE, localError.message, null, Lang.BUTTON_OK, null);
                    _error.Show();

                    loadPop.Hide();

                    return;
                }
            }
            else if (tokenModel != null && tokenModel is AbalonErrors)
            {
                //Hit kommer den om ett fel returneras från Abalon
                loadPop.Hide();

                Joyces.Helpers.Settings.AccessToken = string.Empty;
                Joyces.Helpers.Settings.UserEmail   = string.Empty;

                if (((AbalonErrors)tokenModel).error_description.Contains("PRE_AUTHENTICATION"))
                {
                    ((AbalonErrors)tokenModel).error_description = Lang.NOT_ACTIVATED_MEMBER;
                }
                try
                {
                    //TEMPORÄRT
                    string strErrorDesc = ((AbalonErrors)tokenModel).error_description;
                    strErrorDesc = strErrorDesc.Replace("Missing parameters", "Saknade parametrar").Replace("username", "Epost").Replace("password", "Lösenord");
                    ((AbalonErrors)tokenModel).error_description = strErrorDesc;
                    strErrorDesc = strErrorDesc + "";
                }
                catch (Exception eee)
                {
                }


                UIAlertView _error = new UIAlertView(Lang.MESSAGE_HEADLINE, ((AbalonErrors)tokenModel).error_description.Replace("@carbon.super", ""), null, Lang.BUTTON_OK, null);
                _error.Show();
            }
            else
            {
                //Vid all sorts exception kommer den hit och visar UNEXPECTED_ERROR!
                loadPop.Hide();

                Joyces.Helpers.Settings.AccessToken = string.Empty;
                Joyces.Helpers.Settings.UserEmail   = string.Empty;

                UIAlertView _error = new UIAlertView(Lang.MESSAGE_HEADLINE, Lang.UNEXPECTED_ERROR, null, Lang.BUTTON_OK, null);
                _error.Show();
            }
        }
        async override public void ViewDidAppear(bool animated)
        {
            if (GeneralSettings.AutoLogin)
            {
                if (!string.IsNullOrEmpty(Joyces.Helpers.Settings.AccessToken) &&
                    !string.IsNullOrEmpty(Joyces.Helpers.Settings.UserEmail))
                {
                    //Kontrollerar om användaren redan har loggat in en gång.
                    try
                    {
                        var bounds = UIScreen.MainScreen.Bounds;
                        loadPop = new LoadingOverlay(bounds);
                        View.Add(loadPop);
                        System.Diagnostics.Debug.WriteLine("================LOGIN  IOS BEFORE CALLS ================ " + DateTime.Now.ToString("HH:mm:ss.fff"));

                        //string sAccessToken = Helpers.Settings.AccessToken;
                        string sUserEmail = Joyces.Helpers.Settings.UserEmail;

                        if (!string.IsNullOrEmpty(Joyces.Helpers.Settings.AccessToken) && !string.IsNullOrEmpty(sUserEmail))
                        {
                            Joyces.Platform.AppContext.Instance.Platform.CustomerId = sUserEmail;

                            var getCustomer = await RestAPI.GetCustomer(sUserEmail, Joyces.Helpers.Settings.AccessToken);

                            if (getCustomer != null && getCustomer is Customer)
                            {
                                Joyces.Platform.AppContext.Instance.Platform.CustomerList = (Customer)getCustomer;

                                var resp = await RestAPI.GetOffer(sUserEmail, Joyces.Helpers.Settings.AccessToken);

                                if (resp != null && resp is List <Offer> )
                                {
                                    Joyces.Platform.AppContext.Instance.Platform.OfferList = (List <Offer>)resp;
                                }
                                else
                                {
                                    Joyces.Platform.AppContext.Instance.Platform.OfferList = null;
                                }

                                resp = await RestAPI.GetNews(sUserEmail, Joyces.Helpers.Settings.AccessToken);

                                if (resp != null && resp is List <Joyces.News> )
                                {
                                    Joyces.Platform.AppContext.Instance.Platform.NewsList = (List <Joyces.News>)resp;
                                }
                                else
                                {
                                    Joyces.Platform.AppContext.Instance.Platform.NewsList = null;
                                }

                                Joyces.Platform.AppContext.Instance.Platform.MoreList = await RestAPI.GetMore(Joyces.Helpers.Settings.AccessToken);

                                var x = new MenuTabBarController(this.Handle);
                                x.PerformSegue("segueMenu", this);
                            }
                            else
                            {
                                Joyces.Helpers.Settings.AccessToken = string.Empty;
                                Joyces.Helpers.Settings.UserEmail   = string.Empty;

                                return;
                            }
                        }
                        System.Diagnostics.Debug.WriteLine("================LOGIN  IOS AFTER CALLS ================ " + DateTime.Now.ToString("HH:mm:ss.fff"));
                    }
                    catch (Exception ex)
                    {
                    }
                }
            }
        }
示例#5
0
        private void GetAllDataForTabs()
        {
            try
            {
                //        System.Diagnostics.Debug.WriteLine("================START 2 ================ " + DateTime.Now.ToString("HH:mm:ss.fff"));

                string sUserToken = Joyces.Helpers.Settings.AccessToken;
                string sUserEmail = Joyces.Helpers.Settings.UserEmail;
                Task.Run(async() =>
                {
                    //            System.Diagnostics.Debug.WriteLine("================OFFERS START ================ " + DateTime.Now.ToString("HH:mm:ss.fff"));
                    var resp = await RestAPI.GetOffer(sUserEmail, sUserToken);
                    //            System.Diagnostics.Debug.WriteLine("================OFFERS END ================ " + DateTime.Now.ToString("HH:mm:ss.fff"));
                    bool bOfferIsNotTheSame = false;
                    if (resp != null && resp is List <Offer> )
                    {
                        string strJsonFromRest = JsonConvert.SerializeObject((List <Offer>)resp);
                        if (strJsonFromRest != Joyces.Helpers.Settings.OfferJson)
                        {
                            Joyces.Platform.AppContext.Instance.Platform.OfferList = (List <Offer>)resp;
                            bOfferIsNotTheSame = true;
                        }
                        await SetOfferSetting();
                    }
                    else
                    {
                        Joyces.Platform.AppContext.Instance.Platform.OfferList = null;
                    }
                    if (Joyces.Platform.AppContext.Instance.Platform.OfferList != null && bOfferIsNotTheSame)
                    {
                        if (sSelectedTab == "offersWithLoyalty")
                        {
                            RunOnUiThread(() =>
                            {
                                LoadOffersView();
                            });
                        }
                        else if (sSelectedTab == "offersWithoutLoyalty")
                        {
                            RunOnUiThread(() =>
                            {
                                LoadOffersSingleView();
                            });
                        }
                    }
                });
                Task.Run(async() =>
                {
                    //             System.Diagnostics.Debug.WriteLine("================NEWS START ================ " + DateTime.Now.ToString("HH:mm:ss.fff"));
                    var resp2 = await RestAPI.GetNews(sUserEmail, sUserToken);
                    //             System.Diagnostics.Debug.WriteLine("================NEWS END ================ " + DateTime.Now.ToString("HH:mm:ss.fff"));
                    bool bNewsIsNotTheSame = false;
                    if (resp2 != null && resp2 is List <News> )
                    {
                        string strJsonFromRest = JsonConvert.SerializeObject((List <News>)resp2);

                        if (strJsonFromRest != Joyces.Helpers.Settings.NewsJson)
                        {
                            Joyces.Platform.AppContext.Instance.Platform.NewsList = (List <News>)resp2;
                            bNewsIsNotTheSame = true;
                        }
                        await SetNewsSetting();
                    }
                    else
                    {
                        Joyces.Platform.AppContext.Instance.Platform.NewsList = null;
                    }
                    if (Joyces.Platform.AppContext.Instance.Platform.NewsList != null && bNewsIsNotTheSame)
                    {
                        if (sSelectedTab == "news")
                        {
                            RunOnUiThread(() =>
                            {
                                LoadNewsfeedView();
                            });
                        }
                    }
                });
                Task.Run(async() =>
                {
                    //              System.Diagnostics.Debug.WriteLine("================MORE START ================ " + DateTime.Now.ToString("HH:mm:ss.fff"));
                    bool bMoreIsNotTheSame = false;
                    var resp = await RestAPI.GetMore(Joyces.Helpers.Settings.AccessToken);
                    if (resp != null && resp is List <More> )
                    {
                        string strJsonFromRest = JsonConvert.SerializeObject((List <More>)resp);

                        if (strJsonFromRest != Joyces.Helpers.Settings.MoreJson)
                        {
                            Joyces.Platform.AppContext.Instance.Platform.MoreList = (List <More>)resp;
                            bMoreIsNotTheSame = true;
                        }
                        if (Joyces.Platform.AppContext.Instance.Platform.MoreList != null)
                        {
                            await SetMoreSetting();
                        }
                    }
                    //            System.Diagnostics.Debug.WriteLine("================MORE END ================ " + DateTime.Now.ToString("HH:mm:ss.fff"));

                    if (sSelectedTab == "more")
                    {
                        if (Joyces.Platform.AppContext.Instance.Platform.MoreList != null && bMoreIsNotTheSame)
                        {
                            RunOnUiThread(() =>
                            {
                                LoadMoreFeed();
                            });
                        }
                    }
                });
                //      System.Diagnostics.Debug.WriteLine("================END 2 ================ " + DateTime.Now.ToString("HH:mm:ss.fff"));
            }
            catch (Exception e)
            {
            }
        }