public UserViewModel Map(User source, UserViewModel destination) { if (source == null) { return null; } if (destination == null) { destination = new UserViewModel(); } destination.Id = source.Id; destination.UserName = source.UserName; destination.FirstName = source.FirstName; destination.LastName = source.LastName; destination.Password = source.Password; destination.Email = source.Email; destination.Country = source.Country; destination.City = source.City; destination.StreetRow = source.StreetRow; destination.Phone = source.Phone; foreach (var role in source.Roles) { destination.IsAdmin = role.Id == (int)UserRoleEnum.Admin; destination.IsWorker = role.Id == (int)UserRoleEnum.Worker; } return destination; }
public User Map(UserViewModel source, User destination) { if (source == null) { return null; } if (destination == null) { destination = new User(); } destination.FirstName = source.FirstName; destination.LastName = source.LastName; destination.Email = source.Email; destination.Country = source.Country; destination.City = source.City; destination.StreetRow = source.StreetRow; destination.Phone = source.Phone; if (destination.Roles == null) { destination.Roles = new List<Role>(); } return destination; }
public virtual ActionResult Edit(UserViewModel model) { if (model == null || !ModelState.IsValid) { return View(model); } try { var currentUser = userService.GetUserById(model.Id); if (currentUser == null) { return RedirectToAction(MVC.User.List()); } currentUser = ViewModelToEntityMapper.Mapper.Map(model, currentUser); var roles = userService.GetAllRoles(); currentUser.Roles = new List<Role>(); if (roles != null && roles.Count > 0) { if (model.IsAdmin) { currentUser.Roles.Add(roles.Find(x => x.Id == (int)UserRoleEnum.Admin)); } if (model.IsWorker) { currentUser.Roles.Add(roles.Find(x => x.Id == (int)UserRoleEnum.Worker)); } } if (!string.IsNullOrEmpty(model.Password)) { if (model.Password != model.PasswordConfirmation) { ModelState.AddModelError("Password", " Nesutampa įvesti slaptažodžiai."); return View(model); } else { currentUser.PasswordSalt = cryptoService.GetSalt(); currentUser.Password = cryptoService.GetHashedValue(model.Password, currentUser.PasswordSalt); } } var user = userService.SaveUser(currentUser); if (user != null) { ModelState.Clear(); var viewModel = EntityToViewModelMapper.Mapper.Map(user, new UserViewModel()); viewModel.Message = new MessageViewModel { IsError = false, Message = "Vartotojo informacija atnaujinta" }; return View(viewModel); } } catch (Exception ex) { model.Message = new MessageViewModel { IsError = true, Message = "Išsaugant įvyko klaida, bandykite dar kartą" }; return View(model); } return RedirectToAction(MVC.User.List()); }