public ActionResult NewUser(AppUserViewModel user) { lock (_lock) { LoadViewBagItems(); if (user.Id > 0) { return(EditUser(user)); } var curUser = Thread.CurrentPrincipal.Identity.Name; var appUser = user.ToEntity(); appUser.Status = (int)EntityStatusType.Current; var regUser = user.ToRegistringUser(); regUser.Password = "******"; try { using (var scope = new TransactionScope()) { using (var adminUow = DependencyResolver.Current.GetService <IAdminUnitOfWork>()) { var roleName = adminUow.CodeRepository.GetRolesList().FirstOrDefault(r => r.RoleId == user.RoleId); if (roleName != null) { regUser.Role = roleName.RoleName; } var contact = Contact(user, curUser); adminUow.UserRepository.CreateAppUserWithMembership(appUser, regUser, contact); adminUow.Commit(); } scope.Complete(); } } catch (Exception ex) { _logger.ErrorException("Can't Create New User.", ex); Response.StatusCode = 500; return(new ContentResult { Content = string.Format("Error creating a new user: Error:{0}", ex.Message) }); } return(Json("admin.vm.sites();", "text/html", JsonRequestBehavior.AllowGet)); } }
private ActionResult EditUser(AppUserViewModel user) { try { using (var adminUow = DependencyResolver.Current.GetService <IAdminUnitOfWork>()) { var usr = adminUow.UserRepository.GetById(user.Id); var appUser = user.ToEntity(); appUser.Contact = usr.Contact; appUser.Status = (int)EntityStatusType.Current; var additionaUserInfo = user.ToRegistringUser(); var roleName = adminUow.CodeRepository.GetRolesList().FirstOrDefault(r => r.RoleId == user.RoleId); if (roleName != null) { additionaUserInfo.Role = roleName.RoleName; } appUser.Contact.FirstName = user.FirstName; appUser.Contact.LastName = user.LastName; appUser.Contact.IsActive = user.IsActive; adminUow.UserRepository.UpdateAppUser(appUser, additionaUserInfo); adminUow.Commit(); } return(Json("alert('ok');", JsonRequestBehavior.DenyGet)); } catch (Exception ex) { _logger.Debug(ex.Message); using (var uow = DependencyResolver.Current.GetService <IUtilUnitOfWork>()) { uow.ErrorLogRepository.Log(ex.Message, ex.StackTrace); uow.Commit(); } return(Json(ex.Message, JsonRequestBehavior.DenyGet)); } }