Exemplo n.º 1
0
        public async Task <IActionResult> EditUserInfo(EditUserInfoViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var user = await _userManager.FindByIdAsync(viewModel.Id);

                if (user != null)
                {
                    user.City         = viewModel.City;
                    user.Email        = viewModel.Email;
                    user.FirstName    = viewModel.FirstName;
                    user.LastName     = viewModel.LastName;
                    user.PhoneNumber  = viewModel.PhoneNumber;
                    user.PostCode     = viewModel.PostCode;
                    user.StreetName   = viewModel.StreetName;
                    user.StreetNumber = viewModel.StreetNumber;

                    var result = await _userManager.UpdateAsync(user);

                    if (result.Succeeded)
                    {
                        return(RedirectToAction("UserPage"));
                    }

                    foreach (var error in result.Errors)
                    {
                        ModelState.AddModelError("", error.Description);
                    }
                }
            }

            return(View(viewModel));
        }
        public EditUserInfoPage()
        {
            InitializeComponent();

            editUserInfoViewModel = new EditUserInfoViewModel();

            BindingContext = editUserInfoViewModel;
        }
Exemplo n.º 3
0
        //public void UpdateCompanyCapacities(UserCompanyEditViewModel vm)
        //{
        //    var user = Users.Find(vm.Id);

        //    Mapper.Map(vm, user);

        //    Users.Update(user);
        //    _context.SaveChanges();
        //}

        public void UpdateUser(EditUserInfoViewModel vm)
        {
            var user = Users.Find(vm.Id);

            Mapper.Map(vm, user);

            Users.Update(user);
            _context.SaveChanges();
        }
Exemplo n.º 4
0
        public async Task <IActionResult> EditUserInfo(EditUserInfoViewModel model)
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                await _signInManager.SignOutAsync();

                _notice.AddErrors(ModelState);
                return(View(model));
            }

            var emailToMakePrimary = _userManager.NormalizeKey(model.Email);
            var userLogins         = await _userManager.GetLoginsAsync(user);

            model.Logins = userLogins; // Since model binding doesn't work with IList

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            user.UserName        = model.UserName;
            user.FullName        = model.FullName;
            user.SendCodesViaSms = model.SendCodesViaSms;
            user.MobileNumber    = model.MobileNumber;

            // If the user's email is confirmed (ie. local login) and they provided a different email that exists, set it to the primary
            if (user.EmailConfirmed &&
                user.NormalizedEmail != emailToMakePrimary &&
                userLogins.Any(l => l.LoginProvider == "Email" && l.ProviderKey == emailToMakePrimary))
            {
                user.Email = emailToMakePrimary;
            }

            // Update sumbitted user info, including changing email if required
            var updateResult = await _userManager.UpdateAsync(user);

            if (!updateResult.Succeeded)
            {
                _notice.AddErrors(ModelState, updateResult);
                return(View(model));
            }

            await _events.AddEvent(AuthEventType.EditUserInfo,
                                   JsonConvert.SerializeObject(model), user);

            await _signInManager.RefreshSignInAsync(user);

            return(_notice.Success(this, "Your profile has been updated."));
        }
Exemplo n.º 5
0
        public ActionResult PartialEditUserInfo(string id)
        {
            EditUserInfoViewModel model = new EditUserInfoViewModel();
            DataTable             dt    = CMSService.SelectOne("User", "CMSUser", "UserId=" + id);

            foreach (DataRow dr in dt.Rows)
            {
                UserDto dto = new UserDto();
                dto                = UserMapping.getDTO(dr);
                model.UserId       = dto.UserId;
                model.UserName     = dto.UserName;
                model.UserRealName = dto.UserRealName;
                model.UserSex      = dto.UserSex;
                model.UserBirthday = dto.UserBirthday.ToShortDateString();
            }
            ViewData["Sex"] = MyService.GetSexSelectList();
            return(View(model));
        }
Exemplo n.º 6
0
        public ActionResult SaveEditInfo([Bind(Exclude = "UserPhoto")] ApplicationUser user)
        {
            var _context = HttpContext.GetOwinContext().Get <ApplicationDbContext>();

            // get the current user
            var currentUser = _context.Users.Single(x => x.Id == user.Id);

            if (!ModelState.IsValid)
            {
                // load the genders list
                var genders = _context.Genders.ToList();

                var viewModel = new EditUserInfoViewModel
                {
                    User    = currentUser,
                    Genders = genders
                };

                return(View("EditUserInfo", viewModel));
            }

            currentUser.FullName        = user.FullName;
            currentUser.GenderId        = user.GenderId;
            currentUser.Birthdate       = user.Birthdate;
            currentUser.IsSecuredByNHIF = user.IsSecuredByNHIF;

            // To convert the user uploaded Photo as Byte Array before save to DB
            byte[] imageData = null;
            if (Request.Files.Count > 0)
            {
                HttpPostedFileBase poImgFile = Request.Files["UserPhoto"];

                using (var binary = new BinaryReader(poImgFile.InputStream))
                {
                    imageData = binary.ReadBytes(poImgFile.ContentLength);
                }
            }

            currentUser.UserPhoto = imageData;

            _context.SaveChanges();

            return(RedirectToAction("Index", "Home", new { message = "Промените са записани!" }));
        }
Exemplo n.º 7
0
        public IActionResult EditUserInfo(EditUserInfoViewModel model)
        {
            var userInfo = _userInfoRepo.Read(_userManager.GetUserId(User));

            model.DefaultAvatarPath = _config.GetValue <string>("FileUploadSettings:DefaultAvatarImgFilePath");

            if (ModelState.IsValid)
            {
                var result = FileProcessing.UploadAvatarPng(model.AvatarImage, _userManager.GetUserName(User), this, _config, _webHostEnvironment);

                if (result != null)
                {
                    model.AvatarImgPath    = result; // Render on page
                    userInfo.AvatarImgPath = result; //Save in DB
                }
                else
                {
                    model.AvatarImgPath = userInfo.AvatarImgPath;
                }

                userInfo.FirstName  = model.FirstName;
                userInfo.MiddelName = model.MiddleName;
                userInfo.LasttName  = model.LastName;

                userInfo.Summary = model.Summary;
                //userInfo.MainText = model.MainText;
                //userInfo.AvailableForContact = model.AvailableForContact;

                _userInfoRepo.Update(userInfo);
                return(View(model));
            }


            model = new EditUserInfoViewModel
            {
                AvatarImgPath = userInfo.AvatarImgPath,
                Summary       = userInfo.Summary,
                UserName      = _userManager.GetUserName(User)
                                //MainText = userInfo.MainText,
                                //AvailableForContact = userInfo.AvailableForContact
            };
            return(View(model));
        }
Exemplo n.º 8
0
        public IActionResult EditUserInfo()
        {
            var userInfo = _userInfoRepo.Read(_userManager.GetUserId(User));

            // For sec reason it is recommended we create a ViewModel only exposing the properties we want to edit
            var model = new EditUserInfoViewModel
            {
                UserName      = _userManager.GetUserName(User),
                FirstName     = userInfo.FirstName,
                MiddleName    = userInfo.MiddelName,
                LastName      = userInfo.LasttName,
                AvatarImgPath = userInfo.AvatarImgPath,
                Summary       = userInfo.Summary,
                //MainText = userInfo.MainText,
                //AvailableForContact = userInfo.AvailableForContact
            };

            model.DefaultAvatarPath = _config.GetValue <string>("FileUploadSettings:DefaultAvatarImgFilePath");
            return(View(model));
        }
Exemplo n.º 9
0
        public ActionResult EditUserInfo(EditUserInfoViewModel model)
        {
            UserDto   dto = new UserDto();
            DataTable dt  = CMSService.SelectOne("User", "CMSUser", "UserId=" + model.UserId);

            foreach (DataRow dr in dt.Rows)
            {
                dto = UserMapping.getDTO(dr);
                //  dto.UserRoles = Request.Form["UserRoles"];
                dto.UserBirthday = DateTime.Parse(model.UserBirthday);
                dto.UserRealName = model.UserRealName;
                dto.UserSex      = model.UserSex;
            }
            string  JsonString = JsonHelper.JsonSerializerBySingleData(dto);
            Message msg        = CMSService.Update("User", JsonString);

            // TODO: Add update logic here

            return(RedirectToAction("UserInfo"));
        }
        public async Task <IActionResult> EditUserInfo(string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;

            var user = await GetCurrentUserAsync();

            if (user == null)
            {
                return(View("Error"));
            }

            var model = new EditUserInfoViewModel
            {
                Email     = await _userManager.GetEmailAsync(user),
                UserName  = await _userManager.GetUserNameAsync(user),
                FirstName = user.FirstName,
                LastName  = user.LastName
            };

            return(View(model));
        }
Exemplo n.º 11
0
        public async Task <IActionResult> Edit(EditUserInfoViewModel model)
        {
            if (!User.IsInRole(Roles.Administrator) && User.Identity.Name != model.CurrentName)
            {
                return(Content("Access Denied!"));
            }
            User user = new Models.User();

            if (ModelState.IsValid)
            {
                if (model.NewName != model.CurrentName)
                {
                    user = _dbContext.User.SingleOrDefault(u => u.Name == model.NewName);
                    if (user != null)
                    {
                        ModelState.AddModelError("", "The new name chosen already exists");
                        return(View("Edit", model));
                    }
                }
                user = _dbContext.User.SingleOrDefault(u => u.Name == model.CurrentName);
                if (user == null)
                {
                    return(Content($"User '{model.CurrentName}' not found!"));
                }
                user.Name            = model.NewName;
                user.Description     = model.Description;
                user.IsAdministrator = model.IsAdministrator;
                user.IsLocked        = model.IsLocked;
                _dbContext.User.Update(user);
                await _dbContext.SaveChangesAsync();

                if (model.NewName != model.CurrentName)
                {
                    await LogOut();
                }
                return(RedirectToAction("Detail", new { name = user.Name }));
            }
            return(View("Edit", model));
        }
Exemplo n.º 12
0
        public async Task <ActionResult> Index(EditUserInfoViewModel model)
        {
            if (ModelState.IsValid)
            {
                var userName = User.Identity.GetUserName();
                var user     = await UserManager.FindByNameAsync(userName);

                user.FirstName   = model.FirstName;
                user.LastName    = model.LastName;
                user.DateOfBirth = model.BirthDate;
                user.Country     = model.Country;
                user.Email       = model.Email;
                if (user.Language != model.Language)
                {
                    user.Language = model.Language;
                    SetCurrentLanguage(model.Language);
                }

                IdentityResult result = await UserManager.UpdateAsync(user);

                if (result.Succeeded)
                {
                    return(await Index(ManageMessageId.InformationUpdated));
                }
                AddErrors(result);
            }

            var userId = User.Identity.GetUserId();

            model.HasPassword = HasPassword();
            model.TwoFactor   = await UserManager.GetTwoFactorEnabledAsync(userId);

            model.Logins = await UserManager.GetLoginsAsync(userId);

            model.BrowserRemembered = await AuthenticationManager.TwoFactorBrowserRememberedAsync(userId);

            ViewBag.StatusMessage = string.Empty;
            return(View("Index", model));
        }
Exemplo n.º 13
0
        public IActionResult Edit(string name)
        {
            if (!User.IsInRole(Roles.Administrator) && User.Identity.Name != name)
            {
                return(Content("Access Denied!"));
            }
            User user = _dbContext.User.SingleOrDefault(u => u.Name == name);

            if (user == null)
            {
                return(Content($"User '{name}' not found!"));
            }
            var model = new EditUserInfoViewModel
            {
                CurrentName     = user.Name,
                NewName         = user.Name,
                Description     = user.Description,
                IsAdministrator = user.IsAdministrator,
                IsLocked        = user.IsLocked
            };

            return(View(model));
        }
Exemplo n.º 14
0
        public async Task <IActionResult> EditUserInfo()
        {
            EditUserInfoViewModel model = new EditUserInfoViewModel();
            var user = await _userManager.GetUserAsync(HttpContext.User);

            if (user != null)
            {
                model.FirstName    = user.FirstName;
                model.LastName     = user.LastName;
                model.Email        = user.Email;
                model.City         = user.City;
                model.StreetName   = user.StreetName;
                model.StreetNumber = user.StreetNumber;
                model.PostCode     = user.PostCode;
                model.PhoneNumber  = user.PhoneNumber;
                model.Id           = user.Id;
                return(View(model));
            }
            else
            {
                return(RedirectToAction("Index", "Home"));
            }
        }
Exemplo n.º 15
0
        public async Task <IActionResult> EditUserInfo()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                await _signInManager.SignOutAsync();

                return(_notice.Error(this));
            }

            var model = new EditUserInfoViewModel
            {
                UserName       = user.UserName,
                Logins         = await _userManager.GetLoginsAsync(user),
                Email          = user.Email,
                EmailConfirmed = user.EmailConfirmed,
                FullName       = user.FullName,
                NickName       = user.NickName
            };

            return(View(model));
        }
Exemplo n.º 16
0
        //
        // GET: /Manage/Index
        public async Task <ActionResult> Index(ManageMessageId?message)
        {
            ViewBag.StatusMessage =
                message == ManageMessageId.ChangePasswordSuccess ? Lexicon.YourPasswordHasBeenChanged
                : message == ManageMessageId.SetPasswordSuccess ? Lexicon.YourPasswordHasBeenSet
                : message == ManageMessageId.SetTwoFactorSuccess ? "Your two-factor authentication provider has been set."
                : message == ManageMessageId.Error ? Lexicon.AnErrorHasOccurred
                : message == ManageMessageId.AddPhoneSuccess ? "Your phone number was added."
                : message == ManageMessageId.RemovePhoneSuccess ? "Your phone number was removed."
                : message == ManageMessageId.InformationUpdated ? Lexicon.YourInformationIsSaved
                : "";

            var userId = User.Identity.GetUserId();
            var model  = new EditUserInfoViewModel
            {
                HasPassword       = HasPassword(),
                PhoneNumber       = await UserManager.GetPhoneNumberAsync(userId),
                TwoFactor         = await UserManager.GetTwoFactorEnabledAsync(userId),
                Logins            = await UserManager.GetLoginsAsync(userId),
                BrowserRemembered = await AuthenticationManager.TwoFactorBrowserRememberedAsync(userId)
            };

            var userName = User.Identity.GetUserName();
            var user     = await UserManager.FindByNameAsync(userName);

            if (user != null)
            {
                model.FirstName = user.FirstName;
                model.LastName  = user.LastName;
                model.Email     = user.Email;
                model.Country   = user.Country;
                model.BirthDate = user.DateOfBirth;
                model.Language  = user.Language;
            }

            return(View(model));
        }
Exemplo n.º 17
0
        public async Task <IActionResult> EditUserInfo()
        {
            var user = await _userManager.GetUserAsync(User);

            if (user == null)
            {
                await _signInManager.SignOutAsync();

                return(_notice.Error(this));
            }

            var model = new EditUserInfoViewModel
            {
                UserName       = user.UserName,
                Logins         = await _userManager.GetLoginsAsync(user),
                Email          = user.Email,
                EmailConfirmed = user.EmailConfirmed,
                FullName       = user.FullName,

                FavColor = user.FavColor // !! ADDING FIELDS: If you want users to be able to edit field
            };

            return(View(model));
        }