コード例 #1
0
        public async Task <bool> IsMobileUserAlreadyExsit(AppMobileUser mobileUser)
        {
            try
            {
                var responseJson = await client.GetAsync(APIsConstant.CheckMobileUser + "?email=" + mobileUser.email);

                var json = await responseJson.Content.ReadAsStringAsync();

                if (!json.Equals("[]")) //only parse json if it contains data
                {
                    string[] emails = JsonConvert.DeserializeObject <string[]>(json);
                    for (int i = 0; i < emails.Length; i++)
                    {
                        string email = emails[i];
                        if (email.ToLower().Equals(mobileUser.email.ToLower()))
                        {
                            Debug.WriteLine("MobileUser", "");
                            return(true);
                        }
                    }
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("MobileUser", ex.Message);
            }
            return(false);
        }
コード例 #2
0
        /// <summary>
        /// This function is used to signup user
        /// </summary>
        /// <param name="u"></param>
        public async void SignupUser(User u)
        {
            IsBusy = true;
            if (u.Email != null && u.Email != "" && u.Password != null && u.Password != "")
            {
                if (Regex.IsMatch(u.Email, AppConstant.EmailPatteren))
                {
                    u.IsSubscribed      = false;
                    u.SubScriptionPrice = 0.0;
                    u.MobileUserId      = "";
                    u.FevoriteId        = "";
                    var           mobileService = new MobileUserService();
                    AppMobileUser mobileUser    = new AppMobileUser();
                    mobileUser.email = u.Email;
                    if (CrossConnectivity.Current.IsConnected)
                    {
                        bool IfEmailPresent = await mobileService.IsMobileUserAlreadyExsit(mobileUser);

                        if (!IfEmailPresent && databaseHelper.AddUser(u))
                        {
                            //LoginUser(u);
                            Settings.IsLogin = true;
                            Settings.Email   = u.Email;
                            var    bytes             = Util.EncryptAes(u.Password);
                            string encryptedPassword = BitConverter.ToString(bytes);
                            Settings.Password = encryptedPassword;

                            Settings.IsSubscriped      = u.IsSubscribed;
                            Settings.SubscriptionPrice = u.SubScriptionPrice;
                            Settings.MobileUserId      = u.MobileUserId;
                            Settings.FevouriteId       = u.FevoriteId;

                            App.Current.MainPage = new Views.Menu.MainPage();
                        }
                        else
                        {
                            await Application.Current.MainPage.DisplayAlert(AppConstant.Sorry, AppConstant.RegistrarionError, AppConstant.Done);
                        }
                    }
                    else
                    {
                        await Application.Current.MainPage.DisplayAlert(AppConstant.NoInternetAlert, AppConstant.NoInternetMessage, AppConstant.Done);
                    }
                    IsBusy = false;
                }
                else
                {
                    IsBusy    = false;
                    ShowError = true;
                    Message   = AppConstant.ValidEmail;
                }
            }
            else
            {
                IsBusy    = false;
                ShowError = true;
                Message   = "Email and Password cannot be empty !";
            }
        }
コード例 #3
0
        /// <summary>
        /// Changes the subscription.
        /// </summary>
        /// <returns>The subscription.</returns>
        /// <param name="subscriptionId">Subscription identifier.</param>
        private async Task ChangeSubscription(string subscriptionId, double subscriptionPrice)
        {
            IsBusy = true;
            var           mobileService = new MobileUserService();
            AppMobileUser mobileUser    = new AppMobileUser();

            mobileUser.id                   = Settings.MobileUserId;
            mobileUser.email                = Settings.Email;
            mobileUser.pass_hash            = Settings.Password;
            mobileUser.favorites_id         = Settings.FevouriteId;
            mobileUser.subscription_type_id = subscriptionId;
            mobileUser.created_at           = DateTime.Now.ToString();
            Services.Models.Subscription.Meta meta = new Services.Models.Subscription.Meta();
            meta.author      = AppConstant.AppAuther;
            meta.date_added  = DateTime.Now.ToString();
            meta.last_edited = DateTime.Now.ToString();
            mobileUser.meta  = meta;

            if (!String.IsNullOrEmpty(subscriptionId))
            {
                mobileUser.is_active = "true";
            }
            else
            {
                mobileUser.is_active = "false"; //susbcription has been cancelled
            }
            AppMobileUser user = await mobileService.UpdateMobileUser(mobileUser);

            if (!String.IsNullOrEmpty(subscriptionId))
            {
                Settings.MobileUserId      = user.id;
                Settings.FevouriteId       = user.favorites_id;
                Settings.IsSubscriped      = true;
                Settings.SubscriptionPrice = subscriptionPrice;
                UpdateSubscriptionInLocalDB(true, subscriptionPrice, user.id, user.favorites_id);
            }
            else
            {
                Settings.IsSubscriped      = false;
                Settings.SubscriptionPrice = 0.0;
                UpdateSubscriptionInLocalDB(false, 0.0, user.id, user.favorites_id);
            }
            IsBusy = false;
        }
コード例 #4
0
        /// <summary>
        /// Creates the new mobile user on the server
        /// </summary>
        /// <param name="subscriptionId">Subscription identifier.</param>
        private async Task CreateMobileUser(string subscriptionId, double subscriptionPrice)
        {
            if (string.IsNullOrEmpty(Settings.FevouriteId)) //indicate the subcription is going to be happened very first time
            {
                IsBusy = true;
                var           mobileService = new MobileUserService();
                AppMobileUser mobileUser    = new AppMobileUser();
                mobileUser.id                   = Guid.NewGuid().ToString();
                mobileUser.email                = Settings.Email;
                mobileUser.pass_hash            = Settings.Password;
                mobileUser.favorites_id         = Guid.NewGuid().ToString();
                mobileUser.is_active            = "true";
                mobileUser.subscription_type_id = subscriptionId;
                mobileUser.created_at           = DateTime.Now.ToString();

                Services.Models.Subscription.Meta meta = new Services.Models.Subscription.Meta();
                meta.author      = AppConstant.AppAuther;
                meta.date_added  = DateTime.Now.ToString();
                meta.last_edited = DateTime.Now.ToString();
                mobileUser.meta  = meta;

                AppMobileUser user = await mobileService.CreateMobileUser(mobileUser);

                Settings.MobileUserId      = user.id;
                Settings.FevouriteId       = user.favorites_id;
                Settings.IsSubscriped      = true;
                Settings.SubscriptionPrice = subscriptionPrice;

                UpdateSubscriptionInLocalDB(true, subscriptionPrice, user.id, user.favorites_id);

                await PostUserFevorite(); //Post users fevourites if available

                IsBusy = false;
            }
            else
            {
                //Only update subscription status. don't create new user
                await ChangeSubscription(subscriptionId, subscriptionPrice);
            }
        }
コード例 #5
0
        public async Task <AppMobileUser> UpdateMobileUser(AppMobileUser mobileUser)
        {
            try
            {
                var content = new StringContent(JsonConvert.SerializeObject(mobileUser), Encoding.UTF8, "application/json");
                HttpResponseMessage responseJson = await client.PutAsync(APIsConstant.MobileUser, content);

                var json = await responseJson.Content.ReadAsStringAsync();

                if (json != null) //only parse json if it contains data
                {
                    var user = JsonConvert.DeserializeObject <AppMobileUser>(json);
                    return(user);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("MobileUser", ex.Message);
            }

            return(null);
        }