public void EditProfile(string email, EditUserProfileViewModel profile)
        {
            if (profile.UserAvatar != null)
            {
                string ImagePath = "";
                if (profile.AvatarName != "default.png")
                {
                    ImagePath = Path.Combine(_environment.WebRootPath, "Images/UserAvatar", profile.AvatarName);
                    if (File.Exists(ImagePath))
                    {
                        File.Delete(ImagePath);
                    }
                }
                profile.AvatarName = GeneratorName.GenerateGUID() + Path.GetExtension(profile.UserAvatar.FileName);
                ImagePath          = Path.Combine(_environment.WebRootPath, "Images/UserAvatar", profile.AvatarName);

                using (var stream = new FileStream(ImagePath, FileMode.Create))
                {
                    profile.UserAvatar.CopyTo(stream);
                }
            }
            var user = GetUserByEmail(email);

            user.FirstName  = profile.FirstName;
            user.LastName   = profile.LastName;
            user.Mobile     = profile.Mobile;
            user.UserAvatar = profile.AvatarName;

            UpdateUser(user);
        }
        public async Task <bool> ActivateAccount(string code)
        {
            User user = await _context.Users.SingleOrDefaultAsync(u => u.AcrivationCode == code);

            if (user == null)
            {
                return(false);
            }
            else
            {
                user.IsActive       = true;
                user.AcrivationCode = GeneratorName.GenerateGUID();

                try
                {
                    _context.Users.Update(user);
                    _context.SaveChanges();
                    return(true);
                }
                catch (Exception)
                {
                    return(false);
                }
            }
        }
        public async Task <IActionResult> Register(AccountViewModel register)
        {
            if (!ModelState.IsValid)
            {
                return(View(register));
            }

            if (await _UserService.IsExistMobileAsync(register.Mobile))
            {
                ModelState.TryAddModelError("Mobile", "موبایل وارد شده تکراری می باشد");
                return(View(register));
            }

            if (_UserService.IsExistEmail(FixedText.FixedEmail(register.Email)))
            {
                ModelState.TryAddModelError("Email", "ایمیل وارد شده تکراری می باشد");
                return(View(register));
            }

            User user = new User()
            {
                FirstName      = register.FirstName,
                LastName       = register.LastName,
                Mobile         = register.Mobile,
                Email          = FixedText.FixedEmail(register.Email),
                IdDelete       = false,
                AcrivationCode = GeneratorName.GenerateGUID(),
                IsActive       = false,
                Password       = PasswordHelper.EncodePasswordMd5(register.Password),
                UserAvatar     = "default.png",
                CreateDate     = DateTime.Now
            };
            await _UserService.AddUserAsync(user);


            #region Sending Activation Email

            string body = _renderViewService.RenderToStringAsync("_ActiveEmail", user);
            SendEmail.Send(user.Email, "فعال سازی حساب کاربری در بافر شاپ", body);

            #endregion

            return(View("SuccessRegister", model: user));
        }