private async void GetFares()
        {
            if (m_txtDropoffLocation.Text == string.Empty || m_txtDropoffLocation.Text == string.Empty)
            {
                m_txtComment.Text = "Complete all fields above";
                return;
            }

            ShowLoadingView("Retrieving Available Vehicles...");

            if (m_switchPH.Checked)
            {
                m_fares = GetFareForReservationCharter();
            }
            else
            {
                m_fares = GetFareForReservationPoint();
            }

            if (m_fares.Count == 0)
            {
                UserTrackingReporter.TrackUser(Constant.CATEGORY_SCHEDULE_RIDE, "No fares returned");
                m_txtComment.Text = "Complete all fields above";
                ShowMessageBox("Fares Error", "No fares available for the selected pickup/dropoff. Please confirm they are correct and try again.");
                HideLoadingView();
                return;
            }

            UserTrackingReporter.TrackUser(Constant.CATEGORY_SCHEDULE_RIDE, "Fares retrieved successfully");

            SetFare();
            HideLoadingView();
            return;
        }
Ejemplo n.º 2
0
		protected override bool IsValid(PropertyValidatorContext context) {
			String pcode = context.PropertyValue.ToString ();

			var dic = new Dictionary<String, String> {
				{ Constant.VALIDATEDISCOUNTCOUPON_CODE, pcode },
				{ Constant.VALIDATEDISCOUNTCOUPON_CUSTOMERID, "-1" },
				{ Constant.VALIDATEDISCOUNTCOUPON_EMAIL, "" },
				{ Constant.VALIDATEDISCOUNTCOUPON_SERVICEID, "-1" },
				{ Constant.VALIDATEDISCOUNTCOUPON_TRAVELDATE, "" },
				{ Constant.VALIDATEDISCOUNTCOUPON_VALIDATIONTYPE, "1" }
			};

			string result;
			ValidateDiscountCouponResponse tt = null;
			try {
				UserTrackingReporter.TrackUser (Constant.CATEGORY_PROMO_CODE, "Validating promo code");

				Task runSync = Task.Factory.StartNew (async () => {
					result = await AppData.ApiCall (Constant.VALIDATEDISCOUNTCOUPON, dic);
					tt = (ValidateDiscountCouponResponse)AppData.ParseResponse (Constant.VALIDATEDISCOUNTCOUPON, result);
				}).Unwrap ();
				runSync.Wait ();

			} catch (Exception ex) {
				CrashReporter.Report (ex);
				return false;
			}
			if (tt == null || String.IsNullOrEmpty (tt.Result) || tt.Result.ToLower ().Contains ("failed")) {
				UserTrackingReporter.TrackUser (Constant.CATEGORY_PROMO_CODE, "Invalid promo code entered");
				return false;
			}
			return true;
		}
Ejemplo n.º 3
0
        private async void GooglePlusPersonQueryCompleted(ServiceTicket ticket, NSObject obj, NSError error)
        {
            if (error != null)
            {
                HideLoadingView();
                //InvokeOnMainThread(() => new UIAlertView("Error", "Could not get user information.\nError: " + error.LocalizedDescription, null, "Ok", null).Show());
                InvokeOnMainThread(() => new UIAlertView("Login Failed", "The social network login failed for your account", null, "Ok", null).Show());
                CrashReporter.Report(new Exception(error.LocalizedDescription));
                return;
            }

            var person = (PlusPerson)obj;

            AppSettings.UserEmail     = SignIn.SharedInstance.Authentication.UserEmail;
            AppSettings.UserFirstName = person.Name.GivenName;
            AppSettings.UserLastName  = person.Name.FamilyName;
            AppSettings.UserPhoto     = person.Image.Url;

            bool registerSuccessful = await RegisterUser();

            if (!registerSuccessful)
            {
                GoToCreateAccountScreen();
                return;
            }

            UserTrackingReporter.TrackUser(Constant.CATEGORY_LOGIN, "Google login completed");

            ShowHomeScreen();
        }
Ejemplo n.º 4
0
        private void LogoutProcess()
        {
            UserTrackingReporter.TrackUser(Constant.LOGOUT, "Logout process started");

            LoginType currentLt;

            if (Enum.TryParse(AppSettings.LoginType.ToString(CultureInfo.InvariantCulture), out currentLt))
            {
                switch (currentLt)
                {
                case LoginType.Email:
                    AppSettings.UserLogin    = "";
                    AppSettings.UserPassword = "";

                    UserTrackingReporter.TrackUser(Constant.LOGOUT, "Email logout");
                    break;

                case LoginType.Facebook:
                    UserTrackingReporter.TrackUser(Constant.LOGOUT, "Facebook logout");
                    new LoginManager().LogOut();
                    break;

                case LoginType.Google:
                    UserTrackingReporter.TrackUser(Constant.LOGOUT, "Google+ logout");
                    SignIn.SharedInstance.SignOut();
                    break;

                case LoginType.LinkedIn:
                    SessionManager.ClearSession();
                    break;
                }
            }

            UserTrackingReporter.TrackUser(Constant.LOGOUT, "Logout completed, navigating to the login screen");
        }
Ejemplo n.º 5
0
        public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
        {
            UserTrackingReporter.TrackUser(Constant.CATEGORY_PAYMENT, "Card selected");
            var card = response.CardList[indexPath.Row];

            AppSettings.SelectedCard = card.Id;
        }
Ejemplo n.º 6
0
        public async void deleteCard(GetCreditCardDetailsNewForPhoneResponseItem card)
        {
            UserTrackingReporter.TrackUser(Constant.CATEGORY_PAYMENT, "Deleting card");

            var dic = new Dictionary <String, String>
            {
                { Constant.DELETECREDITCARDNEW_CUSTOMERID, AppSettings.UserID },
                { Constant.DELETECREDITCARDNEW_INFOID, card.Id },
                { Constant.DELETECREDITCARDNEW_LOGINTYPE, AppSettings.LoginType.ToString() },
                { Constant.DELETECREDITCARDNEW_TOKENID, AppSettings.UserToken }
            };

            try
            {
                var result = await AppData.ApiCall(Constant.DELETECREDITCARDNEW, dic);

                var deleteCardResponse = (DeleteCreditCardNewResponse)AppData.ParseResponse(Constant.DELETECREDITCARDNEW, result);

                InvokeOnMainThread(() => new UIAlertView(
                                       deleteCardResponse.Result, deleteCardResponse.Message, null, "Ok", null).Show());
            }
            catch (Exception ex)
            {
                InvokeOnMainThread(() => new UIAlertView(
                                       "Exception:", ex.Message, null, "Ok", null).Show());
                CrashReporter.Report(ex);
                return;
            }
        }
Ejemplo n.º 7
0
        private async Task <List <GetAirlineResponseItem> > GetAirline()
        {
            List <GetAirlineResponseItem> list = null;

            try
            {
                UserTrackingReporter.TrackUser(Constant.CATEGORY_SCHEDULE_RIDE, "Getting airlines");

                var dic = new Dictionary <String, String> {
                    { Constant.GETAIRLINE_PREFIX, "" }
                };
                var result = await AppData.ApiCall(Constant.GETAIRLINE, dic);

                var tt = (GetAirlineResponse)AppData.ParseResponse(Constant.GETAIRLINE, result);
                list = tt.List;
                UserTrackingReporter.TrackUser(Constant.CATEGORY_SCHEDULE_RIDE, "Airlines retrieved successfully");
            }
            catch (Exception ex)
            {
                HideLoadingView();
                ShowMessageBox("Error", "An error occurred getting airlines. \n\nError: " + ex.Message);
                CrashReporter.Report(ex);
            }
            return(list ?? new List <GetAirlineResponseItem>());
        }
Ejemplo n.º 8
0
        public async void deleteCard(int index)
        {
            UserTrackingReporter.TrackUser(Constant.CATEGORY_PAYMENT, "Deleting card");

            GetCreditCardDetailsNewForPhoneResponseItem card = mCardList [index];

            var dic = new Dictionary <String, String>
            {
                { Constant.DELETECREDITCARDNEW_CUSTOMERID, AppSettings.UserID },
                { Constant.DELETECREDITCARDNEW_INFOID, card.Id },
                { Constant.DELETECREDITCARDNEW_LOGINTYPE, AppSettings.LoginType.ToString() },
                { Constant.DELETECREDITCARDNEW_TOKENID, AppSettings.UserToken }
            };

            try
            {
                var result = await AppData.ApiCall(Constant.DELETECREDITCARDNEW, dic);

                var deleteCardResponse = (DeleteCreditCardNewResponse)AppData.ParseResponse(Constant.DELETECREDITCARDNEW, result);

                mSuperActivity.ShowMessageBox(deleteCardResponse.Result, deleteCardResponse.Message);

                mCardList.RemoveAt(index);
                CreditCardAdapter adapter = (CreditCardAdapter)mDrawerList.Adapter;
                adapter.RemoveCard(index);
            }
            catch (Exception ex)
            {
                mSuperActivity.ShowMessageBox("Exception:", ex.Message);
                CrashReporter.Report(ex);
                return;
            }
        }
Ejemplo n.º 9
0
        private async void GetFares()
        {
            if (edtPickUpLocation.Text == string.Empty || editDropOffLocation.Text == string.Empty)
            {
                btnFare.SetTitle("Complete all fields above", UIControlState.Normal);
                return;
            }

            ShowLoadingView("Retrieving Available Vehicles...");

            if (switchPandH.On)
            {
                m_fares = GetFareForReservationCharter();
            }
            else
            {
                m_fares = GetFareForReservationPoint();
            }

            if (m_fares.Count == 0)
            {
                UserTrackingReporter.TrackUser(Constant.CATEGORY_SCHEDULE_RIDE, "No fares returned");
                btnFare.SetTitle("Complete all fields above", UIControlState.Normal);
                ShowMessageBox("Fares Error", "No fares available for the selected pickup/dropoff. Please confirm they are correct and try again.");
                HideLoadingView();
                return;
            }

            UserTrackingReporter.TrackUser(Constant.CATEGORY_SCHEDULE_RIDE, "Fares retrieved successfully");

            SetFare();
            HideLoadingView();
            return;
        }
Ejemplo n.º 10
0
        private void VerifyPromoCode()
        {
            mActivity.ShowLoadingView("Veryfying promo code");
            var dic = new Dictionary <String, String> {
                { Constant.VALIDATEDISCOUNTCOUPON_CODE, mPromoCode.Text },
                { Constant.VALIDATEDISCOUNTCOUPON_CUSTOMERID, "-1" },
                { Constant.VALIDATEDISCOUNTCOUPON_EMAIL, "" },
                { Constant.VALIDATEDISCOUNTCOUPON_SERVICEID, "-1" },
                { Constant.VALIDATEDISCOUNTCOUPON_TRAVELDATE, "" },
                { Constant.VALIDATEDISCOUNTCOUPON_VALIDATIONTYPE, "1" }
            };

            string result;
            ValidateDiscountCouponResponse tt = null;

            try
            {
                UserTrackingReporter.TrackUser(Constant.CATEGORY_PROMO_CODE, "Validating promo code");

                Task runSync = Task.Factory.StartNew(async() =>
                {
                    result = await AppData.ApiCall(Constant.VALIDATEDISCOUNTCOUPON, dic);
                    tt     = (ValidateDiscountCouponResponse)AppData.ParseResponse(Constant.VALIDATEDISCOUNTCOUPON, result);
                }).Unwrap();
                runSync.Wait();
            }
            catch (Exception ex)
            {
                CrashReporter.Report(ex);
                mActivity.HideLoadingView();
                mActivity.RunOnUiThread(() =>
                {
                    mActivity.ShowMessageBox("Failed", "Invalid promo code entered.");
                });
            }
            if (tt == null || String.IsNullOrEmpty(tt.Result) || tt.Result.ToLower().Contains("failed"))
            {
                UserTrackingReporter.TrackUser(Constant.CATEGORY_PROMO_CODE, "Invalid promo code entered");
                mActivity.RunOnUiThread(() =>
                {
                    mActivity.ShowMessageBox("Failed", "Invalid promo code entered.");
                });
            }
            else
            {
                mActivity.RunOnUiThread(() =>
                {
                    mActivity.ShowMessageBox("Success", "Valid promo code entered.");
                });
            }
            mActivity.HideLoadingView();
        }
Ejemplo n.º 11
0
        private void FacebookLoggedIn(string userId)
        {
            ShowLoadingView("Getting some user data...");

            var fields            = "?fields=id,name,email,first_name,last_name,picture";
            var request           = new GraphRequest("/" + userId + fields, null, Facebook.CoreKit.AccessToken.CurrentAccessToken.TokenString, null, "GET");
            var requestConnection = new GraphRequestConnection();

            requestConnection.AddRequest(request, (connection, result, error) => {
                if (error != null)
                {
                    HideLoadingView();
                    //new UIAlertView("Error...", error.Description, null, "Ok", null).Show();
                    new UIAlertView("Login Failed", "The social network login failed for your account", null, "Ok", null).Show();
                    return;
                }

                var userInfo = (NSDictionary)result;

                AppSettings.LoginType     = (int)LoginType.Facebook;
                AppSettings.UserType      = "";
                AppSettings.UserFirstName = userInfo["first_name"].ToString();
                AppSettings.UserLastName  = userInfo["last_name"].ToString();
                AppSettings.UserEmail     = userInfo["email"].ToString();

                var tmp1 = (NSDictionary)userInfo["picture"];
                var tmp2 = (NSDictionary)tmp1["data"];
                AppSettings.UserPhoto = tmp2["url"].ToString();

                AppSettings.UserToken = GetMd5Hash(md5Hash, userInfo["email"].ToString());

                ////we got all the data we need at this point, FB login successful
                UserTrackingReporter.TrackUser(Constant.CATEGORY_LOGIN, "Facebook login completed");

                bool registerSuccessful = false;

                Task runSync = Task.Factory.StartNew(async() => {
                    registerSuccessful = await RegisterUser();
                }).Unwrap();
                runSync.Wait();

                if (!registerSuccessful)
                {
                    GoToCreateAccountScreen();
                    return;
                }

                ShowHomeScreen();
            });
            requestConnection.Start();
        }
Ejemplo n.º 12
0
        private async void ResetPassword()
        {
            UserTrackingReporter.TrackUser(Constant.CATEGORY_FORGOT_PASSWORD, "Restore Password clicked");

            var txt = mTxtEmail.Text;

            if (!AppData.IsValidEmail(txt))
            {
                ShowMessageBox("Error", "Please enter valid email address.");
            }
            else
            {
                UserTrackingReporter.TrackUser(Constant.CATEGORY_FORGOT_PASSWORD, "Resetting password");
                ShowLoadingView("Password Resetting...");

                Dictionary <string, string> dic = new Dictionary <string, string>()
                {
                    { Constant.FORGOTPASSWORDAPIUSEREMAIL, txt }
                };

                ForgotPasswordResponse fpr;
                try
                {
                    var result = await AppData.ApiCall(Constant.FORGOTPASSWORDAPI, dic);

                    fpr = (ForgotPasswordResponse)AppData.ParseResponse(Constant.FORGOTPASSWORDAPI, result);
                    HideLoadingView();
                }
                catch (Exception ex)
                {
                    HideLoadingView();
                    var msg = String.Format("An error occurred requesting password reset.{0}{0}Error: {1}", System.Environment.NewLine, ex.Message);
                    ShowMessageBox("Error", msg);
                    CrashReporter.Report(ex);
                    return;
                }

                if (fpr != null && fpr.Result.ToLower().Contains("success"))
                {
                    //ShowMessageBox("Success", "E-mail to reset password has been sent");
                    OnBack();
                }
                else
                {
                    ShowMessageBox("Error", "Something goes wrong, please contact our support");
                }
            }
        }
Ejemplo n.º 13
0
        private async System.Threading.Tasks.Task ResetMapView()
        {
            try
            {
                UserTrackingReporter.TrackUser(Constant.CATEGORY_HOME, "Getting reservation vehicle locations");

                if (mapView == null)
                {
                    return;
                }

                GetMyValidBookedReservations();
            }
            catch (Exception exc)
            {
                CrashReporter.Report(exc);
            }
        }
        private void BtnLogout_TouchUpInside(object sender, EventArgs e)
        {
            UserTrackingReporter.TrackUser(Constant.LOGOUT, "Logout process started");

            LoginType currentLt;

            if (Enum.TryParse(AppSettings.LoginType.ToString(CultureInfo.InvariantCulture), out currentLt))
            {
                switch (currentLt)
                {
                case LoginType.Email:
                    AppSettings.UserLogin    = "";
                    AppSettings.UserPassword = "";

                    UserTrackingReporter.TrackUser(Constant.LOGOUT, "Email logout");
                    break;

                case LoginType.Facebook:
                    UserTrackingReporter.TrackUser(Constant.LOGOUT, "Facebook logout");
                    new LoginManager().LogOut();
                    break;

                case LoginType.Google:
                    UserTrackingReporter.TrackUser(Constant.LOGOUT, "Google+ logout");
                    SignIn.SharedInstance.SignOut();
                    break;

                case LoginType.LinkedIn:
                    SessionManager.ClearSession();
                    break;
                }
            }

            UserTrackingReporter.TrackUser(Constant.LOGOUT, "Logout completed, navigating to the login screen");
            UIStoryboard sb  = UIStoryboard.FromName("MainStoryboard", null);
            var          vc  = (LoginViewController)sb.InstantiateViewController("LoginViewController");
            var          nav = new UINavigationController(vc);

            this.PresentViewController(nav, true, null);
        }
Ejemplo n.º 15
0
        private void UpdateProfile(object sender, EventArgs e)
        {
            try {
                var result = string.Empty;
                var dic    = new Dictionary <String, String>();

                dic = new Dictionary <String, String> {
                    { Constant.UPDATE_CONTACT_FOR_ANDROID_API_CUSTOMERID, AppSettings.UserID },
                    { Constant.UPDATE_CONTACT_FOR_ANDROID_API_FIRSTNAME, edtFirstName.Text },
                    { Constant.UPDATE_CONTACT_FOR_ANDROID_API_LASTNAME, edtLastName.Text },
                    { Constant.UPDATE_CONTACT_FOR_ANDROID_API_CONTACT, edtMobileNumber.Text },
                    { Constant.UPDATE_CONTACT_FOR_ANDROID_API_ISSMS, isSMS.On.ToString() },
                };

                Task runSync = Task.Factory.StartNew(async() => {
                    result = await AppData.ApiCall(Constant.UPDATE_CONTACT_FOR_ANDROID_API, dic);
                }).Unwrap();
                runSync.Wait();

                UserTrackingReporter.TrackUser(Constant.CATEGORY_UPDATE_PROFILE, "Updating user profile");
                var tt = (UpdateContactResponseForAndroid)AppData.ParseResponse(Constant.UPDATE_CONTACT_FOR_ANDROID_API, result);

                if (tt.Result.ToLower().Contains("error"))
                {
                    HideLoadingView();
                    UserTrackingReporter.TrackUser(Constant.CATEGORY_UPDATE_PROFILE, "Updating failed");
                    ShowMessageBox(tt.Result, tt.Msg);
                    return;
                }

                UserTrackingReporter.TrackUser(Constant.CATEGORY_UPDATE_PROFILE, "Updating successed");
                ShowMessageBox("Success", "User profile updated successfully!");
            } catch (Exception ex) {
                HideLoadingView();
                ShowMessageBox("Error", "An error occurred getting fares. \n\nError: " + ex.Message);
                CrashReporter.Report(ex);
            }
        }
Ejemplo n.º 16
0
        private void LinkedInLoggedIn()
        {
            ApiHelper.SharedInstance.ApiRequest("https://api.linkedin.com/v1/people/~:(first-name,last-name,picture-url,email-address)?format=json", "GET", NSData.FromString(string.Empty, NSStringEncoding.UTF8),
                                                response => {
                var result = JObject.Parse(response.Data);

                InvokeOnMainThread(delegate {
                    AppSettings.LoginType     = (int)LoginType.LinkedIn;
                    AppSettings.UserType      = "";
                    AppSettings.UserFirstName = result["firstName"].ToString();
                    AppSettings.UserLastName  = result["lastName"].ToString();
                    AppSettings.UserEmail     = result["emailAddress"].ToString();
                    AppSettings.UserPhoto     = result["pictureUrl"].ToString();

                    AppSettings.UserToken = GetMd5Hash(md5Hash, result["emailAddress"].ToString());

                    UserTrackingReporter.TrackUser(Constant.CATEGORY_LOGIN, "Linkedin login completed");

                    bool registerSuccessful = false;

                    Task runSync = Task.Factory.StartNew(async() => {
                        registerSuccessful = await RegisterUser();
                    }).Unwrap();
                    runSync.Wait();

                    if (!registerSuccessful)
                    {
                        GoToCreateAccountScreen();
                        return;
                    }

                    ShowHomeScreen();
                });
            },
                                                apiError => {
                Console.WriteLine("Error called: " + apiError.Description);
            });
        }
Ejemplo n.º 17
0
        public void Finished(OAuth2Authentication auth, NSError error)
        {
            if (error != null)
            {
                //InvokeOnMainThread(() => new UIAlertView("Error", "Could not sign in.\nError: " + error.LocalizedDescription, null, "Ok", null).Show());
                InvokeOnMainThread(() => new UIAlertView("Login Failed", "The social network login failed for your account", null, "Ok", null).Show());
                HideLoadingView();
                CrashReporter.Report(new Exception(error.LocalizedDescription));
                return;
            }

            ShowLoadingView("Getting some user data...");

            UserTrackingReporter.TrackUser(Constant.CATEGORY_LOGIN, "Google login successful");

            AppSettings.LoginType = (int)LoginType.Google;
            AppSettings.UserToken = GetMd5Hash(md5Hash, SignIn.SharedInstance.UserEmail);
            AppSettings.UserEmail = SignIn.SharedInstance.UserEmail;
            AppSettings.UserType  = "";

            QueryPlus query = QueryPlus.QueryForPeopleGetWithUserId(SignIn.SharedInstance.UserId);

            SignIn.SharedInstance.PlusService.ExecuteQuery(query, GooglePlusPersonQueryCompleted);
        }
Ejemplo n.º 18
0
        private void BtnLogin_TouchUpInside(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(usernameTextField.Text))
            {
                ShowMessageBox("Request", "Please enter login.", "Ok", null, null);
                usernameTextField.BecomeFirstResponder();
                return;
            }
            if (string.IsNullOrEmpty(passwordTextField.Text))
            {
                ShowMessageBox("Request", "Please enter password.", "Ok", null, null);
                passwordTextField.BecomeFirstResponder();
                return;
            }

            UserTrackingReporter.TrackUser(Constant.CATEGORY_LOGIN, "Login button clicked");

            ShowLoadingView("Signing in...");

            usernameTextField.ResignFirstResponder();
            passwordTextField.ResignFirstResponder();

            AppSettings.UserLogin    = usernameTextField.Text;
            AppSettings.UserPassword = passwordTextField.Text;

            var dic = new Dictionary <String, String>
            {
                { Constant.CHECKLOGINFORANDROID_USERNAME, usernameTextField.Text },
                { Constant.CHECKLOGINFORANDROID_PASSWORD, passwordTextField.Text },
                { Constant.CHECKLOGINFORANDROID_TYPE, "0" },
                { Constant.CHECKLOGINFORANDROID_TOKEN, "" }
            };

            string result = String.Empty;

            try
            {
                UserTrackingReporter.TrackUser(Constant.CATEGORY_LOGIN, "Logging in");
                Task runSync = Task.Factory.StartNew(async() => {
                    result = await AppData.ApiCall(Constant.CHECKLOGINFORANDROID, dic);
                    var tt = (CheckLoginForAndroidResponse)AppData.ParseResponse(Constant.CHECKLOGINFORANDROID, result);

                    InvokeOnMainThread(delegate {
                        if (tt.Result.ToLower().Contains("error") || tt.Result.ToLower().Contains("failed"))
                        {
                            HideLoadingView();
                            UserTrackingReporter.TrackUser(Constant.CATEGORY_LOGIN, "Login failed");
                            ShowMessageBox("Login Failed", "The username or password entered are not valid, please try again.");
                            passwordTextField.BecomeFirstResponder();
                            return;
                        }

                        AppSettings.LoginType     = (int)LoginType.Email;
                        AppSettings.UserToken     = string.Empty;
                        AppSettings.UserType      = tt.CustomerType;
                        AppSettings.UserID        = tt.Customerid;
                        AppSettings.UserEmail     = tt.Email;
                        AppSettings.UserFirstName = tt.FName;
                        AppSettings.UserLastName  = tt.LName;
                        AppSettings.UserPhone     = tt.PH;

                        UserTrackingReporter.TrackUser(Constant.CATEGORY_LOGIN, "Email login successful");

                        ShowHomeScreen();
                    });
                }).Unwrap();
                //runSync.Wait();
            }
            catch (Exception ex)
            {
                AppSettings.UserLogin    = "";
                AppSettings.UserPassword = "";

                HideLoadingView();
                ShowMessageBox("Error", "An error occurred during login.\n" + ex.Message, "Ok", null, null);
                CrashReporter.Report(ex);
                return;
            }
            finally{
                //HideLoadingView();
            }
        }
Ejemplo n.º 19
0
        private void loginProcess()
        {
            var username = FindViewById <EditText> (Resource.Id.login_username);
            var password = FindViewById <EditText> (Resource.Id.login_password);

            if (string.IsNullOrEmpty(username.Text))
            {
                ShowMessageBox("Request", "Please enter login.");
                return;
            }
            if (string.IsNullOrEmpty(password.Text))
            {
                ShowMessageBox("Request", "Please enter password.");
                return;
            }

            AppSettings.UserLogin    = username.Text;
            AppSettings.UserPassword = password.Text;

            var dic = new Dictionary <String, String>
            {
                { Constant.CHECKLOGINFORANDROID_USERNAME, username.Text },
                { Constant.CHECKLOGINFORANDROID_PASSWORD, password.Text },
                { Constant.CHECKLOGINFORANDROID_TYPE, "0" },
                { Constant.CHECKLOGINFORANDROID_TOKEN, "" }
            };

            string result = String.Empty;

            try
            {
                UserTrackingReporter.TrackUser(Constant.CATEGORY_LOGIN, "Logging in");

                ShowLoadingView("Signing in...");

                Task runSync = Task.Factory.StartNew(async() => {
                    result = await AppData.ApiCall(Constant.CHECKLOGINFORANDROID, dic);
                    var tt = (CheckLoginForAndroidResponse)AppData.ParseResponse(Constant.CHECKLOGINFORANDROID, result);

                    if (tt.Result.ToLower().Contains("error") || tt.Result.ToLower().Contains("failed"))
                    {
                        HideLoadingView();
                        UserTrackingReporter.TrackUser(Constant.CATEGORY_LOGIN, "Login failed");
                        ShowMessageBox("Login Failed", "The username or password entered are not valid, please try again.");
                        return;
                    }

                    AppSettings.LoginType     = (int)LoginType.Email;
                    AppSettings.UserToken     = string.Empty;
                    AppSettings.UserType      = tt.CustomerType;
                    AppSettings.UserID        = tt.Customerid;
                    AppSettings.UserEmail     = tt.Email;
                    AppSettings.UserFirstName = tt.FName;
                    AppSettings.UserLastName  = tt.LName;
                    AppSettings.UserPhone     = tt.PH;

                    UserTrackingReporter.TrackUser(Constant.CATEGORY_LOGIN, "Email login successful");

                    ShowHomeScreen();
                }).Unwrap();
                //runSync.Wait();
            }
            catch (Exception ex)
            {
                AppSettings.UserLogin    = "";
                AppSettings.UserPassword = "";

                HideLoadingView();
                ShowMessageBox("Error", "An error occurred during login.\n" + ex.Message);
                CrashReporter.Report(ex);
                return;
            }
            finally{
                //HideLoadingView();
            }
        }
Ejemplo n.º 20
0
        private async Task <bool> RegisterUser()
        {
            UserTrackingReporter.TrackUser(Constant.CATEGORY_LOGIN, "Checking if user is registered");

            var token = GetMd5Hash(md5Hash, AppSettings.UserEmail);

            var dic = new Dictionary <String, String>
            {
                { Constant.CHECKLOGINFORANDROID_USERNAME, AppSettings.UserEmail },
                { Constant.CHECKLOGINFORANDROID_PASSWORD, "" },
                { Constant.CHECKLOGINFORANDROID_TYPE, AppSettings.LoginType.ToString() },
                { Constant.CHECKLOGINFORANDROID_TOKEN, token }
            };

            string result = String.Empty;

            try {
                result = await AppData.ApiCall(Constant.CHECKLOGINFORANDROID, dic);

                var tt = (CheckLoginForAndroidResponse)AppData.ParseResponse(Constant.CHECKLOGINFORANDROID, result);

                if (tt.Result.ToLower().Contains("error") || tt.Result.ToLower().Contains("fail") || tt.Result.ToLower().Contains("failed"))
                {
                    return(false);
                }
                else
                {
                    AppSettings.UserID = tt.Customerid;

                    dic = new Dictionary <String, String>
                    {
                        { Constant.GET_MY_PROFILE_FOR_ANDROID_API_CUSTOMERID, AppSettings.UserID }
                    };

                    result = String.Empty;
                    try {
                        result = await AppData.ApiCall(Constant.GET_MY_PROFILE_FOR_ANDROID_API, dic);

                        var tt1 = (GetMyProfileForAndroidResponse)AppData.ParseResponse(Constant.GET_MY_PROFILE_FOR_ANDROID_API, result);

                        if (tt.Result.ToLower().Contains("error") || tt.Result.ToLower().Contains("fail") || tt.Result.ToLower().Contains("failed"))
                        {
                            //new UIAlertView("Error...", "Login Failed", null, "Ok", null).Show();
                            new UIAlertView("Login Failed", "The social network login failed for your account", null, "Ok", null).Show();
                            return(false);
                        }
                        AppSettings.UserEmail     = tt1.Email;
                        AppSettings.UserFirstName = tt1.FirstName;
                        AppSettings.UserLastName  = tt1.LastName;
                        AppSettings.UserPhone     = tt1.Phone;
                        AppSettings.UserPassword  = tt1.Password;
                        AppSettings.IsSMS         = bool.Parse(tt1.IsSMS);

                        return(true);
                    }  catch (Exception e) {
                    }

                    return(true);
                }
            }  catch (Exception e) {
            }
            return(false);
        }
Ejemplo n.º 21
0
        public override void ViewDidLoad()
        {
            UserTrackingReporter.TrackUser(Constant.CATEGORY_LOGIN, "ViewDidLoad");

            base.ViewDidLoad();
            thisController = NavigationController;

            md5Hash = MD5.Create();

                        #if DEBUG
            usernameTextField.Text = "*****@*****.**";
            passwordTextField.Text = "test1234";
                        #endif

            var tap = new UITapGestureRecognizer(() => { View.EndEditing(true); });
            View.AddGestureRecognizer(tap);

            CLLocationManager locationManager;
            locationManager = new CLLocationManager();

            if (locationManager.RespondsToSelector(new Selector("requestWhenInUseAuthorization")))
            {
                locationManager.RequestWhenInUseAuthorization();
            }

            locationManager.DistanceFilter  = CLLocationDistance.FilterNone;
            locationManager.DesiredAccuracy = CLLocation.AccurracyBestForNavigation;
            locationManager.StartUpdatingLocation();

            usernameTextField.ShouldReturn += TextFieldShouldReturn;
            passwordTextField.ShouldReturn += TextFieldShouldReturn;

            btnLogin.TouchUpInside          += BtnLogin_TouchUpInside;
            btnCreateAccount.TouchUpInside  += BtnCreateAccount_TouchUpInside;
            btnCallRoadrunner.TouchUpInside += BtnCallRoadrunner_TouchUpInside;

            #region Facebook

            _facebookLoginButton.TouchUpInside += BtnLogin_Facebook;

            #endregion

            #region Linkedin

            _linkedinLoginButton.TouchUpInside += BtnLogin_Linkedin;

            #endregion

            #region Google+

            signIn          = SignIn.SharedInstance;
            signIn.ClientId = RoadRunner.Shared.Constant.GOOGLECLIENTID;
            signIn.Scopes   = new[] { PlusConstants.AuthScopePlusLogin, PlusConstants.AuthScopePlusMe };
            signIn.ShouldFetchGoogleUserEmail = true;
            signIn.ShouldFetchGoogleUserId    = true;
            signIn.Delegate = this;

            _googleLoginButton.TouchUpInside += BtnLogin_Google;

            #endregion

            #region AutoLogin
            // If the user is already logged in GooglePlus
            if (signIn.ClientId != null && signIn.TrySilentAuthentication)
            {
            }

            // If the user is already logged in Facebook
            if (Facebook.CoreKit.AccessToken.CurrentAccessToken != null)
            {
                FacebookLoggedIn(Facebook.CoreKit.AccessToken.CurrentAccessToken.UserID);
            }

            // If the user is already logged in Linkedin
            if (SessionManager.SharedInstance.Session.AccessToken != null)
            {
                LinkedInLoggedIn();
            }

            if (!String.IsNullOrEmpty(AppSettings.UserLogin) && !String.IsNullOrEmpty(AppSettings.UserPassword))
            {
                usernameTextField.Text = AppSettings.UserLogin;
                passwordTextField.Text = AppSettings.UserPassword;
                BtnLogin_TouchUpInside(new object(), new EventArgs());
            }
            #endregion
        }
Ejemplo n.º 22
0
        public override void ViewDidLoad()
        {
            UserTrackingReporter.TrackUser(Constant.CATEGORY_FORGOT_PASSWORD, "ViewDidLoad");

            base.ViewDidLoad();

            NavigationItem.Customize(NavigationController);

            btnRestorePassword.SetCustomButton();

            edtEmailAdress.ShouldReturn += TextFieldShouldReturn;

            var tap = new UITapGestureRecognizer(() => { View.EndEditing(true); });

            View.AddGestureRecognizer(tap);

                        #if DEBUG
            edtEmailAdress.Text = "*****@*****.**";
            #endif

            btnRestorePassword.TouchUpInside += async delegate(object sender, EventArgs e)
            {
                UserTrackingReporter.TrackUser(Constant.CATEGORY_FORGOT_PASSWORD, "Restore Password clicked");

                var txt = edtEmailAdress.Text;

                if (!AppData.IsValidEmail(txt))
                {
                    ShowMessageBox("Error", "Please enter valid email address.", "Ok", null, null);
                }
                else
                {
                    UserTrackingReporter.TrackUser(Constant.CATEGORY_FORGOT_PASSWORD, "Resetting password");
                    ShowLoadingView("Password Resetting...");

                    Dictionary <string, string> dic = new Dictionary <string, string>()
                    {
                        { Constant.FORGOTPASSWORDAPIUSEREMAIL, txt }
                    };

                    ForgotPasswordResponse fpr;
                    try
                    {
                        var result = await AppData.ApiCall(Constant.FORGOTPASSWORDAPI, dic);

                        fpr = (ForgotPasswordResponse)AppData.ParseResponse(Constant.FORGOTPASSWORDAPI, result);
                        HideLoadingView();
                    }
                    catch (Exception ex)
                    {
                        HideLoadingView();
                        var msg = String.Format("An error occurred requesting password reset.{0}{0}Error: {1}", Environment.NewLine, ex.Message);
                        ShowMessageBox("Error", msg, "Ok", null, null);
                        CrashReporter.Report(ex);
                        return;
                    }

                    if (fpr != null && fpr.Result.ToLower().Contains("success"))
                    {
                        ShowMessageBox("Success", "E-mail to reset password has been sent", "Ok", null, null);
                    }
                    else
                    {
                        ShowMessageBox("Error", "Something goes wrong, please contact our support", "Ok", null, null);
                    }

                    var justVC = Storyboard.InstantiateViewController("LoginViewController");
                    this.NavigationController.PushViewController(justVC, true);
                }
            };
        }