public async Task <IActionResult> OnGetAsync()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }

            var userName = await _userManager.GetUserNameAsync(user);

            var email = await _userManager.GetEmailAsync(user);

            var phoneNumber = await _userManager.GetPhoneNumberAsync(user);

            var id = await _userManager.GetUserIdAsync(user);

            Username = userName;

            BDS_ML.Models.ModelDB.Admin admin = _context.Admin.Where(c => c.Account_ID == id).SingleOrDefault();


            Input = new InputModel
            {
                Email       = email,
                PhoneNumber = phoneNumber,
                FullName    = admin.FullName,
                Address     = admin.Address
            };

            IsEmailConfirmed = await _userManager.IsEmailConfirmedAsync(user);

            return(Page());
        }
        public async Task <IActionResult> OnGetAsync()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }

            var userName = await _userManager.GetUserNameAsync(user);

            var email = await _userManager.GetEmailAsync(user);

            var phoneNumber = await _userManager.GetPhoneNumberAsync(user);

            var id = await _userManager.GetUserIdAsync(user);

            if (user.IsAdmin == 1)
            {
                BDS_ML.Models.ModelDB.Admin admin = _context.Admin.Where(c => c.Account_ID == id).SingleOrDefault();


                Input = new InputModel
                {
                    AvatarImage = admin.Avatar_URL
                };
            }
            if (user.IsAdmin == 0)
            {
                Customer customer = _context.Customer.Where(c => c.Account_ID == id).SingleOrDefault();


                Input = new InputModel
                {
                    AvatarImage = customer.Avatar_URL
                };
            }
            return(Page());
        }
        public async Task <IActionResult> OnPostAsync(IFormFile image)
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }
            if (user.IsAdmin == 1)
            {
                BDS_ML.Models.ModelDB.Admin admin = _context.Admin.Where(c => c.Account_ID == user.Id).SingleOrDefault();
                var email = await _userManager.GetEmailAsync(user);

                if (admin == null)
                {
                    return(NotFound($"Unable to load admin with úuerID '{_userManager.GetUserId(User)}'."));
                }
                var oldImage = admin.Avatar_URL;
                if (image != null)
                {
                    string fileName = Path.GetFileName(image.FileName);

                    string extensionFileName = Path.GetExtension(fileName);
                    if (fileName.Substring(0, fileName.Length - extensionFileName.Length).Length > 40)
                    {
                        fileName = fileName.Substring(0, fileName.Length - extensionFileName.Length - 40) + "-" + user.Id + "-" + DateTime.Now.ToString().Replace(" ", "").Replace(":", "").Replace("/", "") + extensionFileName;
                    }
                    else
                    {
                        fileName = fileName.Substring(0, fileName.Length - extensionFileName.Length) + "-" + user.Id + "-" + DateTime.Now.ToString().Replace(" ", "").Replace(":", "").Replace("/", "") + extensionFileName;
                    }

                    var path = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\images\avatars", fileName);

                    using (var stream = new FileStream(path, FileMode.Create))
                    {
                        await image.CopyToAsync(stream);
                    }
                    admin.Avatar_URL = fileName;
                }
                else
                {
                    admin.Avatar_URL = "avatar_common.png";
                }

                {
                    try
                    {
                        _context.Admin.Attach(admin);
                        _context.Entry(admin).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
                        _context.SaveChanges();
                        HttpContext.Session.SetString("AvatarImage", admin.Avatar_URL);
                        if (String.Compare(oldImage, "avatar_common.png", true) != 0)
                        {
                            var path = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\images\avatars", oldImage);
                            if (System.IO.File.Exists(path))
                            {
                                System.IO.File.Delete(path);
                            }
                        }
                    }
                    catch
                    {
                        StatusMessage = "Error Cập nhật thông tin không thành công!";
                        return(RedirectToPage());
                    }
                }
            }

            if (user.IsAdmin == 0)
            {
                Customer customer = _context.Customer.Where(c => c.Account_ID == user.Id).SingleOrDefault();
                var      email    = await _userManager.GetEmailAsync(user);

                if (customer == null)
                {
                    return(NotFound($"Unable to load admin with úuerID '{_userManager.GetUserId(User)}'."));
                }
                var oldImage = customer.Avatar_URL;
                if (image != null)
                {
                    string fileName = Path.GetFileName(image.FileName);

                    string extensionFileName = Path.GetExtension(fileName);
                    if (fileName.Length - extensionFileName.Length > 40)
                    {
                        fileName = fileName.Substring(0, 40) + "-" + user.Id + "-" + DateTime.Now.ToString().Replace(" ", "").Replace(":", "").Replace("/", "") + extensionFileName;
                    }

                    else
                    {
                        fileName = fileName.Substring(0, fileName.Length - extensionFileName.Length) + "-" + user.Id + "-" + DateTime.Now.ToString().Replace(" ", "").Replace(":", "").Replace("/", "") + extensionFileName;
                    }

                    var path = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\images\avatars", fileName);

                    using (var stream = new FileStream(path, FileMode.Create))
                    {
                        await image.CopyToAsync(stream);
                    }
                    customer.Avatar_URL = fileName;
                }
                else
                {
                    customer.Avatar_URL = "avatar_common.png";
                }

                {
                    try
                    {
                        _context.Customer.Attach(customer);
                        _context.Entry(customer).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
                        _context.SaveChanges();
                        HttpContext.Session.SetString("AvatarImage", customer.Avatar_URL);
                        if (String.Compare(oldImage, "avatar_common.png", true) != 0)
                        {
                            var path = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\images\avatars", oldImage);
                            if (System.IO.File.Exists(path))
                            {
                                System.IO.File.Delete(path);
                            }
                        }
                    }
                    catch
                    {
                        StatusMessage = "Error Cập nhật thông tin không thành công!";
                        return(RedirectToPage());
                    }
                }
            }
            StatusMessage = "Thông tin của bạn đã được cập nhật";
            return(RedirectToPage());
        }
        public async Task <IActionResult> OnPostAsync()
        {
            if (!ModelState.IsValid)
            {
                return(Page());
            }

            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'."));
            }
            BDS_ML.Models.ModelDB.Admin admin = _context.Admin.Where(c => c.Account_ID == user.Id).SingleOrDefault();
            var email = await _userManager.GetEmailAsync(user);

            if (Input.Email != email)
            {
                admin.Email = Input.Email;
                var setEmailResult = await _userManager.SetEmailAsync(user, Input.Email);

                if (!setEmailResult.Succeeded)
                {
                    var userId = await _userManager.GetUserIdAsync(user);

                    throw new InvalidOperationException($"Unexpected error occurred setting email for user with ID '{userId}'.");
                }
            }

            var phoneNumber = await _userManager.GetPhoneNumberAsync(user);

            if (Input.PhoneNumber != phoneNumber)
            {
                admin.PhoneNumber = Input.PhoneNumber;
                var setPhoneResult = await _userManager.SetPhoneNumberAsync(user, Input.PhoneNumber);

                if (!setPhoneResult.Succeeded)
                {
                    var userId = await _userManager.GetUserIdAsync(user);

                    throw new InvalidOperationException($"Unexpected error occurred setting phone number for user with ID '{userId}'.");
                }
            }

            if (Input.FullName != admin.FullName)
            {
                admin.FullName = Input.FullName;
            }

            if (Input.Address != admin.Address)
            {
                admin.Address = Input.Address;
            }
            admin.ModifiedDate = DateTime.Now;
            var updateResult = await _userManager.UpdateAsync(user);

            if (!updateResult.Succeeded)
            {
                var userId = await _userManager.GetUserIdAsync(user);

                throw new InvalidOperationException($"Unexpected error occurred setting fields for user with ID '{userId}'.");
            }
            else
            {
                try
                {
                    _context.Admin.Attach(admin);
                    _context.Entry(admin).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
                    _context.SaveChanges();
                }
                catch
                {
                    StatusMessage = "Error Cập nhật thông tin không thành công!";
                    return(RedirectToPage());
                }
            }
            await _signInManager.RefreshSignInAsync(user);

            StatusMessage = "Thông tin của bạn đã được cập nhật";
            return(RedirectToPage());
        }