public async Task <IActionResult> Edit(string Id) { AppUser user = await _userManager.FindByIdAsync(Id); UserDTO model = new UserDTO(); model.InjectFrom(user); return(View(model)); }
public UserDTO GetUser(Guid?userId) { _userRepository.Configure(); var showingUser = _userRepository.GetUsers().FirstOrDefault(u => u.Id == userId); if (showingUser == null) { throw new ArgumentException("There is no categories with specific id", nameof(userId)); } var userDTO = new UserDTO() { }; userDTO.InjectFrom(showingUser); return(userDTO); }
public async Task <JsonResult> EditUser(string data) { dynamic user = new ExpandoObject(); if (Request.IsAjaxRequest()) { try { user = JsonConvert.DeserializeObject(data); string userModel = user.userWithPermissions.userModel.ToString(); var dataNvc = HttpUtility.ParseQueryString(userModel); var dataCollection = dataNvc.AllKeys.ToDictionary(o => o, o => dataNvc[o]); var jsonString = JsonConvert.SerializeObject(dataCollection); AdminUserViewModel userVM = JsonConvert.DeserializeObject <AdminUserViewModel>(jsonString); var locale = LocalizationService.GetAvalaibleLocalization(); if ((userVM.Locale == null) || (locale.FirstOrDefault(l => l.LocalizationId == userVM.Locale) == null)) { ModelState.AddModelError("Locale", Resource.errLocaleNotFound); } if (userVM.TimezoneId == null || userVM.TimezoneId == string.Empty) { ModelState.AddModelError("TimezoneId", Resource.errTimeZoneNotFound); } userVM.Password = SecurityHelper.Hash(userVM.Password); if (ModelState.IsValid) { string pic = user.userWithPermissions.file.ToString(); userVM.Picture = pic; var userPermissions = (IEnumerable <dynamic>)user.userWithPermissions.permissions; var userId = Guid.Parse((string)userPermissions.First().userId); UserViewModel currUser = null; if (userId != Guid.Empty) { currUser = await _customUserManager.FindByIdAsync(userId.ToString()); } if (currUser == null || (!currUser.UserName.Equals(userVM.Login) && !await _customUserManager.IsUniqueLoginAsync(userVM.Login))) { ModelState.AddModelError("Login", Resource.errNotUnique); return(Json(JsonConvert.SerializeObject(Url.Action("Edit", "User")))); } List <PermissionDTO> permissions = new List <PermissionDTO>(); foreach (dynamic permission in (IEnumerable <dynamic>)user.userWithPermissions.permissions) { var permissionDTO = new PermissionDTO() { Id = Guid.NewGuid(), UserId = Guid.Parse((string)permission.userId), Role = (Auction.BussinessLogic.Models.Role)Enum.Parse(typeof(Auction.BussinessLogic.Models.Role), (string)permission.role) }; if (permissionDTO.Role != Auction.BussinessLogic.Models.Role.Admin) { permissionDTO.AuctionId = (string)permission.auctionName; if (permissionDTO.Role == BussinessLogic.Models.Role.Moderator) { permissionDTO.CategoriesId = new List <Guid>(); foreach (dynamic key in (IEnumerable <dynamic>)permission.categories) { permissionDTO.CategoriesId.Add(Guid.Parse((string)key.Value)); } } else { permissionDTO.CategoriesId = null; } } permissions.Add(permissionDTO); } var userDTO = new UserDTO() { Id = userId }; userVM.Id = userDTO.Id; userVM.RegistrationDate = DateTime.Now; userDTO.InjectFrom(userVM); var listOldPermissions = await _customUserManager.GetPermissionsAsync(Guid.Parse(currUser.Id)); foreach (var oldPermission in listOldPermissions) { await _customUserManager.RemovePermissionAsync(oldPermission); } foreach (var permission in permissions) { await _customUserManager.AddPermissionAsync(permission); } await _customUserManager.EditUserAsync(userDTO); return(Json(JsonConvert.SerializeObject(Url.Action("Index", "User")))); } } catch { ModelState.AddModelError(string.Empty, Resource.errCreate); } } return(Json(JsonConvert.SerializeObject(Url.Action("Edit", "User")))); }