public ActionResult ChangeUserData(ChangeUserDataViewModel userprofile)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    string userId = User.Identity.GetUserId();

                    ApplicationUser user = context.Users.FirstOrDefault(u => u.Id.Equals(userId));

                    user.UserName    = userprofile.Email;
                    user.Email       = user.UserName;
                    user.Nickname    = userprofile.Nickname;
                    user.Information = userprofile.Information;
                    user.Searchable  = userprofile.Searchable;

                    context.Entry(user).State = EntityState.Modified;
                    context.SaveChanges();

                    return(RedirectToAction("UserProfile", "Account"));
                }
                catch (Exception)
                {
                    TempData["SQLFailMSG"] = "<script>alert('The desired email-address is already used by another user. Please try another email-address');</script>";
                    return(View(userprofile));
                }
            }
            return(View(userprofile));
        }
 /// <summary>
 /// Zapisuje nowe dane użytkownika.
 /// </summary>
 /// <param name="context">Kontekst bazy danych</param>
 /// <param name="username">Nazwa użytkownika</param>
 /// <param name="model">Model z nowymi danymi</param>
 /// <returns>True, jeśli zapis się powiódł, false w przypadku błędu.</returns>
 public bool SaveUserData(IAccommodationContext context, string username, ChangeUserDataViewModel model)
 {
     try
     {
         var user = context.Users.FirstOrDefault(u => u.Username.Equals(username));
         if (user == null)
         {
             return(false);
         }
         var data = context.UserData.FirstOrDefault(ud => ud.Id == user.UserDataId);
         if (data == null)
         {
             return(false);
         }
         data.Email       = model.Email;
         data.CompanyName = model.CompanyName;
         data.FirstName   = model.FirstName;
         data.LastName    = model.LastName;
         context.SaveChanges();
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
Ejemplo n.º 3
0
        public async Task <ActionResult> ChangeUserData(ChangeUserDataViewModel model)
        {
            ApplicationUser user = await UserManager.FindByNameAsync(User.Identity.Name);

            if (user != null)
            {
                user.FirstName           = model.FirstName;
                user.LastName            = model.LastName;
                user.Country             = model.Country;
                user.City                = model.City;
                user.Gender              = model.Gender;
                user.BirthDate           = model.BirthDate;
                user.YourSelfDescription = model.YourSelfDescription;

                IdentityResult result = await UserManager.UpdateAsync(user);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Index", new { Message = ManageMessageId.UserProfileUpdated }));
                }
                else
                {
                    ModelState.AddModelError("", "Something wrong");
                }
            }
            else
            {
                ModelState.AddModelError("", "User not found");
            }

            return(View(model));
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> Info(ChangeUserDataViewModel model)
        {
            if (ModelState.IsValid)
            {
                var curUser = _userManager.Users.Single(w => w.Id == GetCurrentUserIdAsync());

                if (!string.IsNullOrEmpty(model.Name))
                {
                    curUser.name = model.Name;
                }

                if (!string.IsNullOrEmpty(model.Phone))
                {
                    curUser.PhoneNumber = model.Phone;
                }

                if (!string.IsNullOrEmpty(model.Email))
                {
                    if (_userManager.Users.Any(a => a.NormalizedEmail == model.Email.ToUpper()))
                    {
                        ModelState.AddModelError(model.Email, "Email already in use");
                        ModelState.AddModelError(String.Empty, "Email already in use");
                    }
                    else
                    {
                        curUser.Email           = model.Email;
                        curUser.NormalizedEmail = model.Email.ToUpper();
                    }
                }

                await _userManager.UpdateAsync(curUser);
            }

            return(View(model));
        }
Ejemplo n.º 5
0
 public async Task <ActionResult> ChangeUserData(ChangeUserDataViewModel model)
 {
     if (ModelState.IsValid)
     {
         if (!await _userDataAccessor.SaveUserDataAsync(Context, HttpContext.User?.Identity?.Name, model))
         {
             ModelState.AddModelError("", "Nie udało się zapisać nowych danych");
         }
         return(RedirectToAction("ViewProfile", "Manage"));
     }
     return(View(model));
 }
Ejemplo n.º 6
0
        public IActionResult Info()
        {
            var curUser = _userManager.Users.Single(w => w.Id == GetCurrentUserIdAsync());

            var userModel = new ChangeUserDataViewModel
            {
                Email = curUser.Email,
                Phone = curUser.PhoneNumber,
                Name  = curUser.name
            };

            return(View(userModel));
        }
Ejemplo n.º 7
0
        private void UpdatePhoto(ChangeUserDataViewModel model)
        {
            var userId = User.Identity.GetUserId();
            var user   = this.Data.Users.All().FirstOrDefault(u => u.Id == userId);

            user.Email       = model.Email;
            user.UserLevelId = model.UserLevelId;
            user.Gender      = model.Gender;
            user.FirstName   = model.FirstName;
            user.LastName    = model.LastName;
            user.ImageURL    = model.ImageURL;
            this.Data.Users.Update(user);
            this.Data.SaveChanges();
        }
Ejemplo n.º 8
0
        //
        // GET: /Account/ChangeUserData

        public ActionResult ChangeUserData()
        {
            var    db     = new ApplicationDbContext();
            string userId = User.Identity.GetUserId();

            ApplicationUser user = db.Users.FirstOrDefault(u => u.Id.Equals(userId));

            ChangeUserDataViewModel model = new ChangeUserDataViewModel();

            model.Email       = user.UserName;
            model.Nickname    = user.Nickname;
            model.Information = user.Information;

            return(View(model));
        }
Ejemplo n.º 9
0
        public async Task <ResultDto <EmptyDto> > ChangeUserData(ChangeUserDataViewModel viewModel, int UserId)
        {
            var result = new ResultDto <EmptyDto>();

            var user = _usersRepository.GetBy(x => x.Id == UserId);

            if (viewModel.Username != null)
            {
                bool isOtherUserHaveTheSameUsername = _usersRepository.Exist(x => x.Username == viewModel.Username);
                if (isOtherUserHaveTheSameUsername)
                {
                    result.Errors.Add("Ta nazwa użytkownika jest już zajęta");
                    return(result);
                }
            }

            var newUser = _mapper.Map(viewModel, user);

            if (viewModel.NewPassword != null && viewModel.OldPassword != null)
            {
                if (user.PasswordHash != GetHash(viewModel.OldPassword))
                {
                    result.Errors.Add("Stare hasło jest nieprawidłowe");
                    return(result);
                }

                if (user.PasswordHash == GetHash(viewModel.NewPassword))
                {
                    result.Errors.Add("Nowe hasło jest takie same jak stare");
                    return(result);
                }


                newUser.PasswordHash = GetHash(viewModel.NewPassword);
            }

            int isUpdated = await Task.Run(() => _usersRepository.Update(newUser));

            if (isUpdated == 0)
            {
                result.Errors.Add("Wystapił błąd podczas zapisywania zmian");
            }

            return(result);
        }
Ejemplo n.º 10
0
        public async Task <IActionResult> ChangeUserData([FromBody] ChangeUserDataViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            int userId = Convert.ToInt32(User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Sid).Value);

            var result = await _userService.ChangeUserData(viewModel, userId);

            if (result.IsError)
            {
                return(BadRequest(result));
            }

            return(Ok(result));
        }
Ejemplo n.º 11
0
        public ActionResult ChangeUserData(ChangeUserDataViewModel model)
        {
            if (ModelState.IsValid)
            {
                var photo = WebImage.GetImageFromRequest();
                if (photo != null)
                {
                    var fileName     = Path.GetFileName(photo.FileName);
                    var fileSavePath = Server.MapPath(VIRTUAL_PATH + fileName);

                    // Delete path for an old image
                    var fileDeletePath = Server.MapPath(model.ImageURL);

                    photo.Save(fileSavePath);
                    model.ImageURL = VIRTUAL_PATH + fileName;

                    try
                    {
                        UpdatePhoto(model);

                        // Delete an old image.
                        System.IO.File.Delete(fileDeletePath);

                        return(RedirectToAction("Index"));
                    }
                    catch (Exception)
                    {
                        if (System.IO.File.Exists(fileSavePath))
                        {
                            System.IO.File.Delete(fileSavePath);
                        }
                    }
                }
                else
                {
                    UpdatePhoto(model);

                    return(RedirectToAction("Index"));
                }
            }

            return(View(model));
        }
Ejemplo n.º 12
0
        public async Task <ActionResult> ChangeUserData()
        {
            //supposedly find by mail, coz default in identity user = mail
            ApplicationUser user = await UserManager.FindByNameAsync(User.Identity.Name);

            if (user != null)
            {
                ChangeUserDataViewModel model = new ChangeUserDataViewModel
                {
                    FirstName           = user.FirstName,
                    LastName            = user.LastName,
                    Country             = user.Country,
                    City                = user.City,
                    Gender              = user.Gender,
                    BirthDate           = user.BirthDate,
                    YourSelfDescription = user.YourSelfDescription
                };
                return(View(model));
            }
            return(RedirectToAction("Index", "Home"));
        }
Ejemplo n.º 13
0
        public ActionResult ChangeUserData(ChangeUserDataViewModel userprofile)
        {
            if (ModelState.IsValid)
            {
                var    db     = new ApplicationDbContext();
                string userId = User.Identity.GetUserId();

                ApplicationUser user = db.Users.FirstOrDefault(u => u.Id.Equals(userId));

                user.UserName    = userprofile.Email;
                user.Email       = user.UserName;
                user.Nickname    = userprofile.Nickname;
                user.Information = userprofile.Information;

                db.Entry(user).State = EntityState.Modified;
                db.SaveChanges();

                return(RedirectToAction("UserProfile", "Account"));
            }
            return(View(userprofile));
        }
Ejemplo n.º 14
0
 /// <summary>
 /// Asynchronicznie zapisuje nowe dane użytkownika.
 /// </summary>
 /// <param name="context">Kontekst bazy danych</param>
 /// <param name="username">Nazwa użytkownika</param>
 /// <param name="model">Model z nowymi danymi</param>
 /// <returns>True, jeśli zapis się powiódł, false w przypadku błędu.</returns>
 public async Task <bool> SaveUserDataAsync(IAccommodationContext context, string username,
                                            ChangeUserDataViewModel model)
 {
     return(await Task.Run(() => SaveUserData(context, username, model)));
 }