Exemplo n.º 1
0
        private async void LoadProfile()
        {
            if (Application.Current.Properties.ContainsKey("USER_NAME"))
            {
                if (isCancelMode)
                {
                    EntryFirstName.Text = tmpFirstName;
                    EntryLastName.Text  = tmpLastName;

                    if (tmpImageBytesNew != null)
                    {
                        Stream sm = BytesToStream(tmpImageBytes);
                        selectedImage.Source = ImageSource.FromStream(() => sm);
                    }

                    if (tmpGender != null && SelectGender.SelectedItem != null)
                    {
                        SelectGender.SelectedItem = tmpGender;
                    }

                    if (tmpDateofBirth != null)
                    {
                        SelectDateOfBirth.Date = tmpDateofBirth;
                    }

                    if (tmpPhone != null)
                    {
                        EntryUserPhoneNumber.Text = tmpPhone;
                    }

                    if (tmpEmail != null)
                    {
                        EntryEmail.Text = tmpEmail;
                    }

                    if (tmpAddr1 != null)
                    {
                        EntryAddress1.Text = tmpAddr1;
                    }

                    if (tmpAddr2 != null)
                    {
                        EntryAddress2.Text = tmpAddr2;
                    }

                    if (tmpAddr3 != null)
                    {
                        EntryAddress3.Text = tmpAddr3;
                    }
                    tmpImageBytesNew = null;
                    isCancelMode     = false;
                }
                else
                {
                    var username = Application.Current.Properties["USER_NAME"] as string;

                    var dbpath  = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "UserDatabase.db");
                    var db      = new SQLiteConnection(dbpath);
                    var myquery = db.Table <RegUserTable>().Where(u => u.UserName.Equals(username)).FirstOrDefault();

                    if (myquery != null)
                    {
                    }

                    RootProfileObject profileData = await apiRequestHelper.RequestProfileAsync(username);

                    if (profileData != null && profileData.Data != null && profileData.Data.Count > 0)
                    {
                        var profile = db.Table <ProfileTable>().Where(u => u.UserName.Equals(username)).FirstOrDefault();
                        if (myquery != null && profile != null)
                        {
                            EntryFirstName.Text = profile.FirstName;
                            EntryLastName.Text  = profile.LastName;
                            tmpFirstName        = profile.FirstName;
                            tmpLastName         = profile.LastName;

                            if (profile.Content != null)
                            {
                                if (tmpImageBytes == null)
                                {
                                    tmpImageBytes = profile.Content;
                                    Stream sm = BytesToStream(tmpImageBytes);
                                    selectedImage.Source = ImageSource.FromStream(() => sm);
                                }
                                else
                                {
                                    var imageCompare = tmpImageBytes.SequenceEqual(profile.Content);
                                    if (!imageCompare)
                                    {
                                        tmpImageBytes = profile.Content;
                                        Stream sm = BytesToStream(tmpImageBytes);
                                        selectedImage.Source = ImageSource.FromStream(() => sm);
                                    }
                                }
                            }

                            if (profile.Gender != null && profile.Gender.Trim() != "")
                            {
                                SelectGender.SelectedItem = profile.Gender;
                                tmpGender = profile.Gender;
                            }

                            if (profile.DateOfBirth != null && profile.DateOfBirth.Trim() != "")
                            {
                                DateTime date = DateTime.ParseExact(profile.DateOfBirth, "dd/MM/yyyy", null);
                                SelectDateOfBirth.Date = date;
                                tmpDateofBirth         = date;
                            }

                            if (profile.PhoneNumber != null && profile.PhoneNumber.Trim() != "")
                            {
                                EntryUserPhoneNumber.Text = profile.PhoneNumber;
                                tmpPhone = profile.PhoneNumber;
                            }

                            if (profile.Email != null && profile.Email.Trim() != "")
                            {
                                EntryEmail.Text = profile.Email;
                                tmpEmail        = profile.Email;
                            }

                            if (profile.Address1 != null && profile.Address1.Trim() != "")
                            {
                                EntryAddress1.Text = profile.Address1;
                                tmpAddr1           = profile.Address1;
                            }

                            if (profile.Address2 != null && profile.Address2.Trim() != "")
                            {
                                EntryAddress2.Text = profile.Address2;
                                tmpAddr2           = profile.Address2;
                            }

                            if (profile.Address3 != null && profile.Address3.Trim() != "")
                            {
                                EntryAddress3.Text = profile.Address3;
                                tmpAddr3           = profile.Address3;
                            }
                        }
                    }
                }
            }

            Device.StartTimer(TimeSpan.FromSeconds(1), () => {
                popupLoadingView.IsVisible  = false;
                activityIndicator.IsRunning = false;
                return(true);
            });
        }
Exemplo n.º 2
0
        public async void LoadProfile()
        {
            if (Application.Current.Properties.ContainsKey("USER_NAME"))
            {
                var username = Application.Current.Properties["USER_NAME"] as string;
                //Remove codes for retreiving data from local database

                /*
                 * var dbpath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "UserDatabase.db");
                 * var db = new SQLiteConnection(dbpath);
                 * var myquery = db.Table<RegUserTable>().Where(u => u.UserName.Equals(username)).FirstOrDefault();
                 *
                 * if (myquery != null)
                 * {
                 *
                 * }
                 */
                //End of local database

                RootProfileObject profileData = await apiRequestHelper.RequestProfileAsync(username);

                if (profileData != null && profileData.Data != null && profileData.Data.Count > 0)
                {
                    var dbpath       = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "UserDatabase.db");
                    var db           = new SQLiteConnection(dbpath);
                    var profileTable = db.GetTableInfo("ProfileTable");
                    if (profileTable.Count == 0)
                    {
                        List <ProfileJson> Data = profileData.Data;
                        ProfileJson        json = Data.First <ProfileJson>();

                        db.CreateTable <ProfileTable>();
                        ProfileTable item = new ProfileTable()
                        {
                            UserName    = username,
                            FirstName   = json.FirstName,
                            LastName    = json.LastName,
                            Gender      = json.Gender,
                            DateOfBirth = json.DateOfBirth,
                            Address1    = json.Address1,
                            Address2    = json.Address2,
                            Address3    = json.Address3,
                            Email       = json.Email,
                            PhoneNumber = json.PhoneNumber,
                            CreateDate  = DateTime.Now,
                        };
                        db.Insert(item);

                        //
                        string fullName = "";
                        if (item.FirstName != null)
                        {
                            fullName = item.FirstName;
                        }

                        if (item.LastName != null)
                        {
                            fullName += " " + item.LastName;
                        }

                        AccountName.Text = fullName;
                    }
                    else
                    {
                        var profile = db.Table <ProfileTable>().Where(u => u.UserName.Equals(username)).FirstOrDefault();
                        if (profile != null)
                        {
                            string fullName = "";

                            if (profile.FirstName != null)
                            {
                                fullName = profile.FirstName;
                            }

                            if (profile.LastName != null)
                            {
                                fullName += " " + profile.LastName;
                            }

                            AccountName.Text = fullName;

                            if (profile.Content != null)
                            {
                                ImageBytes = profile.Content;
                                Stream sm = BytesToStream(ImageBytes);
                                selectedImage.Source = ImageSource.FromStream(() => sm);
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        //private async void SaveProfile(string username, string email)
        private async void SaveProfile(string username)
        {
            RootProfileObject profileData = await apiRequestHelper.RequestProfileAsync(username);

            if (profileData != null && profileData.Data != null && profileData.Data.Count > 0)
            {
                List <ProfileJson> Data = profileData.Data;
                if (Data.Count > 0)
                {
                    ProfileJson json = Data.First <ProfileJson>();

                    var dbpath      = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "UserDatabase.db");
                    var db          = new SQLiteConnection(dbpath);
                    var userprofile = db.GetTableInfo("ProfileTable");

                    if (userprofile.Count == 0)
                    {
                        //TODO เอาข้อมูลจาก Cloud มาอัพเดท Local DB
                        var item = new ProfileTable()
                        {
                            UserName    = username,
                            FirstName   = EntryFirstName.Text,
                            LastName    = EntryLastName.Text,
                            Gender      = ((SelectGender == null || SelectGender.SelectedItem == null)? "" : SelectGender.SelectedItem.ToString()),
                            DateOfBirth = ((SelectDateOfBirth == null || SelectDateOfBirth.Date == null)? "" : SelectDateOfBirth.Date.ToString("dd/MM/yyyy")),
                            Address1    = EntryAddress1.Text,
                            Address2    = EntryAddress2.Text,
                            Address3    = EntryAddress3.Text,
                            Email       = json.Email,
                            PhoneNumber = json.PhoneNumber,
                            Content     = tmpImageBytesNew,

                            CreateDate = DateTime.Now,
                            UpdateDate = DateTime.Now,
                        };
                        db.CreateTable <ProfileTable>();
                        db.Insert(item);

                        //json.UserName = username;
                        json.FirstName = EntryFirstName.Text;
                        json.LastName  = EntryLastName.Text;
                        if (SelectGender != null && SelectGender.SelectedItem != null)
                        {
                            json.Gender = SelectGender.SelectedItem.ToString();
                        }
                        if (SelectDateOfBirth != null && SelectDateOfBirth.Date != null)
                        {
                            json.DateOfBirth = SelectDateOfBirth.Date.ToString("dd/MM/yyyy");
                        }
                        json.Address1 = EntryAddress1.Text;
                        json.Address2 = EntryAddress2.Text;
                        json.Address3 = EntryAddress3.Text;
                        //json.Email = email;
                        //json.PhoneNumber = EntryUserPhoneNumber.Text;
                        //json.CreateDate = DateTime.Now.ToString("dd/MM/yyyy hh:mm tt");
                        json.UpdateDate = DateTime.Now.ToString("dd/MM/yyyy hh:mm tt");

                        await apiRequestHelper.RequestUpdateProfileAsync(json);

                        Device.BeginInvokeOnMainThread(async() =>
                        {
                            Toast.MakeText(context, "บันทึกข้อมูลสำเร็จ", ToastLength.Short).Show();
                        });
                    }
                    else
                    {
                        var item = db.Table <ProfileTable>().Where(u => u.UserName.Equals(username)).FirstOrDefault();

                        if (item != null)
                        {
                            item.FirstName = EntryFirstName.Text;
                            item.LastName  = EntryLastName.Text;
                            if (SelectGender != null && SelectGender.SelectedItem != null)
                            {
                                item.Gender = SelectGender.SelectedItem.ToString();
                            }
                            if (SelectDateOfBirth != null && SelectDateOfBirth.Date != null)
                            {
                                item.DateOfBirth = SelectDateOfBirth.Date.ToString("dd/MM/yyyy");
                            }
                            item.Address1 = EntryAddress1.Text;
                            item.Address2 = EntryAddress2.Text;
                            item.Address3 = EntryAddress3.Text;
                            //item.Email = email;
                            item.PhoneNumber = EntryUserPhoneNumber.Text;

                            if (tmpImageBytesNew != null)
                            {
                                item.Content = tmpImageBytesNew;
                            }
                            item.UpdateDate = DateTime.Now;

                            db.RunInTransaction(() =>
                            {
                                db.Update(item);
                            });

                            json.UserName  = username;
                            json.ProfileId = item.ProfileId.ToString();
                            json.FirstName = EntryFirstName.Text;
                            json.LastName  = EntryLastName.Text;

                            if (SelectGender != null && SelectGender.SelectedItem != null)
                            {
                                json.Gender = SelectGender.SelectedItem.ToString();
                            }
                            if (SelectDateOfBirth != null && SelectDateOfBirth.Date != null)
                            {
                                json.DateOfBirth = SelectDateOfBirth.Date.ToString("dd/MM/yyyy");
                            }
                            json.Address1 = EntryAddress1.Text;
                            json.Address2 = EntryAddress2.Text;
                            json.Address3 = EntryAddress3.Text;
                            //json.Email = email;
                            //json.PhoneNumber = EntryUserPhoneNumber.Text;
                            json.UpdateDate = DateTime.Now.ToString("dd/MM/yyyy hh:mm tt");



                            var result = await apiRequestHelper.RequestUpdateProfileAsync(json);

                            Console.WriteLine("SaveProfile result:", result);

                            Device.BeginInvokeOnMainThread(async() =>
                            {
                                Toast.MakeText(context, "บันทึกข้อมูลสำเร็จ", ToastLength.Short).Show();
                            });
                        }
                        else
                        {
                            //TODO เอาข้อมูลจาก Cloud มาอัพเดท Local DB
                            item = new ProfileTable()
                            {
                                UserName    = username,
                                FirstName   = EntryFirstName.Text,
                                LastName    = EntryLastName.Text,
                                Gender      = ((SelectGender == null || SelectGender.SelectedItem == null) ? "" : SelectGender.SelectedItem.ToString()),
                                DateOfBirth = ((SelectDateOfBirth == null || SelectDateOfBirth.Date == null) ? "" : SelectDateOfBirth.Date.ToString("dd/MM/yyyy")),
                                Address1    = EntryAddress1.Text,
                                Address2    = EntryAddress2.Text,
                                Address3    = EntryAddress3.Text,
                                Email       = json.Email,
                                PhoneNumber = json.PhoneNumber,
                                Content     = tmpImageBytesNew,

                                CreateDate = DateTime.Now,
                                UpdateDate = DateTime.Now,
                            };
                            db.CreateTable <ProfileTable>();
                            db.Insert(item);

                            //json.UserName = username;
                            json.FirstName = EntryFirstName.Text;
                            json.LastName  = EntryLastName.Text;
                            if (SelectGender != null && SelectGender.SelectedItem != null)
                            {
                                json.Gender = SelectGender.SelectedItem.ToString();
                            }
                            if (SelectDateOfBirth != null && SelectDateOfBirth.Date != null)
                            {
                                json.DateOfBirth = SelectDateOfBirth.Date.ToString("dd/MM/yyyy");
                            }
                            json.Address1 = EntryAddress1.Text;
                            json.Address2 = EntryAddress2.Text;
                            json.Address3 = EntryAddress3.Text;
                            //json.Email = email;
                            //json.PhoneNumber = EntryUserPhoneNumber.Text;
                            //json.CreateDate = DateTime.Now.ToString("dd/MM/yyyy hh:mm tt");
                            json.UpdateDate = DateTime.Now.ToString("dd/MM/yyyy hh:mm tt");

                            await apiRequestHelper.RequestUpdateProfileAsync(json);

                            Device.BeginInvokeOnMainThread(async() =>
                            {
                                Toast.MakeText(context, "บันทึกข้อมูลสำเร็จ", ToastLength.Short).Show();
                            });
                        }



                        //Refresh Profile Image
                        var md   = (MasterDetailPage)Application.Current.MainPage;
                        var menu = (MainPageMaster)md.Master;
                        menu.LoadProfile();

                        return;
                    }
                }
            }
        }
Exemplo n.º 4
0
        async void Login_Clicked(object sender, EventArgs e)
        {
            if (EntryUser.Text == null)
            {
                //await this.DisplayAlert(null, "กรุณาระบุชื่อผู้ใช้งาน", null, "ตกลง");
                EntryUser.PlaceholderColor = Color.FromHex("#ffb3ba");
                EntryUser.Placeholder      = "กรุณาระบุชื่อผู้ใช้งาน";
                EntryUser.Focus();
                return;
            }

            if (EntryPassword.Text == null)
            {
                //await this.DisplayAlert(null, "กรุณาระบุรหัสผ่าน", null, "ตกลง");
                EntryPassword.PlaceholderColor = Color.FromHex("#ffb3ba");
                EntryPassword.Placeholder      = "กรุณาระบุรหัสผ่าน";
                EntryPassword.Focus();
                return;
            }

            btnLogin.IsEnabled = false;
            //Cloud database
            //Register data to firebase also
            RegUserJson user = await apiRequestHelper.RequestLoginUserAsync(EntryUser.Text, EntryPassword.Text);

            if (user != null & user.UserName == EntryUser.Text)
            {
                var dbpath  = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "UserDatabase.db");
                var db      = new SQLiteConnection(dbpath);
                var reguser = db.GetTableInfo("RegUserTable");
                if (reguser.Count == 0)
                {
                    db.CreateTable <RegUserTable>();

                    var item = new RegUserTable()
                    {
                        UserName    = user.UserName,
                        Password    = user.Password,
                        Email       = user.Email,
                        PhoneNumber = user.PhoneNumber,
                    };

                    db.Insert(item);
                }
                else
                {
                    var item = db.Table <RegUserTable>().Where(u => u.UserName.Equals(user.UserName)).FirstOrDefault();

                    if (item == null)
                    {
                        var data = new RegUserTable()
                        {
                            UserName    = user.UserName,
                            Password    = user.Password,
                            Email       = user.Email,
                            PhoneNumber = user.PhoneNumber,
                        };
                        db.Insert(data);
                    }
                }
                RootProfileObject profileData = await apiRequestHelper.RequestProfileAsync(user.UserName);

                if (profileData != null && profileData.Data != null && profileData.Data.Count > 0)
                {
                    List <ProfileJson> Data = profileData.Data;
                    if (Data.Count > 0)
                    {
                        ProfileJson json = Data.First <ProfileJson>();

                        var userprofile = db.GetTableInfo("ProfileTable");
                        if (userprofile.Count == 0)
                        {
                            db.CreateTable <ProfileTable>();
                            var profile = new ProfileTable()
                            {
                                UserName    = json.UserName,
                                FirstName   = json.FirstName,
                                LastName    = json.LastName,
                                Gender      = (json.Gender == null ? "" : json.Gender),
                                DateOfBirth = (json.DateOfBirth == null ? "" : json.DateOfBirth),
                                Address1    = json.Address1 == null? "" : json.Address1,
                                Address2    = json.Address2 == null ? "" : json.Address2,
                                Address3    = json.Address3 == null ? "" : json.Address3,
                                Email       = json.Email,
                                PhoneNumber = json.PhoneNumber,

                                CreateDate = DateTime.Now,
                                UpdateDate = DateTime.Now,
                            };

                            db.Insert(profile);
                        }
                        else
                        {
                            var item = db.Table <ProfileTable>().Where(u => u.UserName.Equals(user.UserName)).FirstOrDefault();

                            if (item == null)
                            {
                                var profile = new ProfileTable()
                                {
                                    UserName    = json.UserName,
                                    FirstName   = json.FirstName,
                                    LastName    = json.LastName,
                                    Gender      = (json.Gender == null ? "" : json.Gender),
                                    DateOfBirth = (json.DateOfBirth == null ? "" : json.DateOfBirth),
                                    Address1    = json.Address1 == null ? "" : json.Address1,
                                    Address2    = json.Address2 == null ? "" : json.Address2,
                                    Address3    = json.Address3 == null ? "" : json.Address3,
                                    Email       = json.Email,
                                    PhoneNumber = json.PhoneNumber,

                                    CreateDate = DateTime.Now,
                                    UpdateDate = DateTime.Now,
                                };

                                db.Insert(profile);
                            }
                        }
                    }
                }

                ///////////////////

                Device.StartTimer(TimeSpan.FromSeconds(0.1), () => {
                    btnLogin.IsEnabled = true;

                    Toast.MakeText(context, "Login Successfull", ToastLength.Short).Show();
                    Application.Current.Properties.Add("USER_NAME", EntryUser.Text);
                    App.Current.MainPage = new MainPage();
                    return(false);
                });
            }
            else
            {
                Device.BeginInvokeOnMainThread(async() =>
                {
                    var result2 = await this.DisplayAlert(null, "ข้อผิดพลาด! ไม่พบข้อมูลผู้ใช้งาน\nกรุณาตรวจสอบชื่อผู้ใช้งานและรหัสผ่าน", null, "ตกลง");

                    if (!result2)
                    {
                        btnLogin.IsEnabled = true;
                        EntryUser.Focus();
                    }
                });
            }

            //End of Cloud database


            //Local database

            /*
             * var dbpath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "UserDatabase.db");
             * var db = new SQLiteConnection(dbpath);
             * db.CreateTable<RegUserTable>();
             * var myquery = db.Table<RegUserTable>().Where(u => u.UserName.Equals(EntryUser.Text) && u.Password.Equals(EntryPassword.Text)).FirstOrDefault();
             *
             * if (myquery != null)
             * {
             *  Application.Current.Properties.Add("USER_NAME", myquery.UserName);
             *  App.Current.MainPage = new MainPage();
             * }
             * else
             * {
             *  Device.BeginInvokeOnMainThread(async () => {
             *      if(EntryUser.Text == null)
             *      {
             *          //await this.DisplayAlert(null, "กรุณาระบุชื่อผู้ใช้งาน", null, "ตกลง");
             *          EntryUser.PlaceholderColor = Color.FromHex("#ffb3ba");
             *          EntryUser.Placeholder = "กรุณาระบุชื่อผู้ใช้งาน";
             *          EntryUser.Focus();
             *          return;
             *      }
             *
             *      if (EntryPassword.Text == null)
             *      {
             *          //await this.DisplayAlert(null, "กรุณาระบุรหัสผ่าน", null, "ตกลง");
             *          EntryPassword.PlaceholderColor = Color.FromHex("#ffb3ba");
             *          EntryPassword.Placeholder = "กรุณาระบุรหัสผ่าน";
             *          EntryPassword.Focus();
             *          return;
             *      }
             *
             *      var result = await this.DisplayAlert(null, "ข้อผิดพลาด! ไม่พบข้อมูลผู้ใช้งาน\nกรุณาตรวจสอบชื่อผู้ใช้งานและรหัสผ่าน", null, "ตกลง");
             *
             *      if (!result)
             *      {
             *          EntryUser.Focus();
             *      }
             *  });
             *
             * }
             */
            //End of Local database
        }