//[Authorize(Roles = "AddUser")] public async Task <HttpResponseMessage> Create(HttpRequestMessage request, ApplicationUserViewModel applicationUserViewModel) { if (ModelState.IsValid) { var newAppUser = new ApplicationUser(); newAppUser.UpdateUser(applicationUserViewModel); try { newAppUser.Id = Guid.NewGuid().ToString(); var result = await _userManager.CreateAsync(newAppUser, applicationUserViewModel.Password); if (result.Succeeded) { var listAppUserGroup = new List <ApplicationUserGroup>(); foreach (var group in applicationUserViewModel.Groups) { listAppUserGroup.Add(new ApplicationUserGroup() { GroupId = group.ID, UserId = newAppUser.Id }); //add role to user var listRole = _appRoleService.GetListRoleByGroupId(group.ID); foreach (var role in listRole) { await _userManager.RemoveFromRoleAsync(newAppUser.Id, role.Name); await _userManager.AddToRoleAsync(newAppUser.Id, role.Name); } } _appGroupService.AddUserToGroups(listAppUserGroup, newAppUser.Id); _appGroupService.Save(); await _userManager.UpdateAsync(newAppUser); var usertest = await _userManager.FindByIdAsync(newAppUser.Id); return(request.CreateResponse(HttpStatusCode.OK, applicationUserViewModel)); } else { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, string.Join(",", result.Errors))); } } catch (NameDuplicatedException dex) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, dex.Message)); } catch (Exception ex) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message)); } } else { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } }
public async Task <HttpResponseMessage> Update(HttpRequestMessage request, ApplicationUserViewModel appUserViewModel) { if (ModelState.IsValid) { var appUser = await _userManager.FindByIdAsync(appUserViewModel.Id); try { appUser.UpdateUser(appUserViewModel); var result = await _userManager.UpdateAsync(appUser); if (result.Succeeded) { //delete all role into user var listGroup = _appGroupService.GetListGroupByUserId(appUser.Id); foreach (var group in listGroup) { var listOldRole = _appRoleService.GetListRoleByGroupId(group.ID); foreach (var role in listOldRole) { await _userManager.RemoveFromRoleAsync(appUser.Id, role.Name); } } //add new role into user var listAppUserGroup = new List <ApplicationUserGroup>(); foreach (var newGroup in appUserViewModel.Groups) { listAppUserGroup.Add(new ApplicationUserGroup { GroupId = newGroup.ID, UserId = appUser.Id }); var listRole = _appRoleService.GetListRoleByGroupId(newGroup.ID); foreach (var newRole in listRole) { //await _userManager.RemoveFromRoleAsync(appUser.Id, role.Name); //await _userManager.RemoveFromRoleAsync(appUser.Id, newRole.Name); await _userManager.AddToRoleAsync(appUser.Id, newRole.Name); } } _appGroupService.AddUserToGroups(listAppUserGroup, appUser.Id); _appGroupService.Save(); return(request.CreateResponse(HttpStatusCode.OK, appUserViewModel)); } else { return(request.CreateErrorResponse(HttpStatusCode.OK, string.Join(",", result.Errors))); } } catch (NameDuplicatedException dx) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, dx.Message)); } } else { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } }
public async Task <IActionResult> Create([FromBody] ApplicationUserViewModel applicationUserViewModel) { // await roleManager.AddClaimAsync(adminRole, new Claim(CustomClaimTypes.Permission, "projects.update")); // var newAppUser = new ApplicationUser(); // newAppUser.UpdateUser(applicationUserViewModel); // ApplicationUser newAppUser = PropertyCopy.Copy<ApplicationUser, ApplicationUserViewModel>(applicationUserViewModel); IActionResult actionResult = new ObjectResult(false); GenericResult addResult = null; if (!ModelState.IsValid) { return(BadRequest()); } try { var userByEmail = await _userManager.FindByEmailAsync(applicationUserViewModel.Email); if (userByEmail != null) { addResult = new GenericResult() { Succeeded = false, Message = "Email đã tồn tại" }; actionResult = new ObjectResult(addResult); return(actionResult); } var userByUserName = await _userManager.FindByNameAsync(applicationUserViewModel.UserName); if (userByUserName != null) { addResult = new GenericResult() { Succeeded = false, Message = "Username đã tồn tại" }; actionResult = new ObjectResult(addResult); return(actionResult); } ApplicationUser newAppUser = Mapper.Map <ApplicationUserViewModel, ApplicationUser>(applicationUserViewModel); newAppUser.Id = Guid.NewGuid().ToString(); newAppUser.PARENT_ID = null; newAppUser.RECORD_STATUS = "1"; newAppUser.AUTH_STATUS = "U"; newAppUser.APPROVE_DT = null; newAppUser.EDIT_DT = null; newAppUser.PASSWORD = null; newAppUser.CREATE_DT = DateTime.Now.Date; newAppUser.PARENT_ID = _userManager.GetUserId(User); var result = await _userManager.CreateAsync(newAppUser, applicationUserViewModel.PASSWORD); if (result.Succeeded) { var listAppUserGroup = new List <ApplicationUserGroup>(); var groups = applicationUserViewModel.Groups.Where(xy => xy.Check).ToList(); foreach (var group in groups) { listAppUserGroup.Add(new ApplicationUserGroup() { GroupId = group.ID, UserId = newAppUser.Id }); var listRole = _appRoleService.GetListRoleByGroupId(group.ID).ToList(); List <string> list = new List <string>(); foreach (var role in listRole) { list.Add(role.Name); } foreach (var item in list) { await _userManager.RemoveFromRoleAsync(newAppUser, item); if (!await _userManager.IsInRoleAsync(newAppUser, item)) { IdentityResult result2 = await _userManager.AddToRoleAsync(newAppUser, item); if (!result2.Succeeded) { AddErrorsFromResult(result); } } } } _appGroupService.AddUserToGroups(listAppUserGroup, newAppUser.Id); _appGroupService.Save(); //DEFACEWEBSITEContext context = new DEFACEWEBSITEContext(); //string pass = MD5Encoder.MD5Hash(user.Password); XElement xmldata = new XElement(new XElement("Root")); XElement x = new XElement("Domain", new XElement("DOMAIN", applicationUserViewModel.Domain), new XElement("DESCRIPTION", applicationUserViewModel.DomainDesc)); xmldata.Add(x); string command = $"dbo.Users_Ins @p_USERNAME = '******', @p_FULLNAME= N'{newAppUser.FULLNAME}',@p_PASSWORD = '******',@p_EMAIL = '{newAppUser.Email}',@p_PHONE = {newAppUser.PHONE},@p_PARENT_ID = '',@p_DESCRIPTION = N'{newAppUser.DESCRIPTION}',@p_RECORD_STATUS = '{newAppUser.RECORD_STATUS}',@p_AUTH_STATUS = '{newAppUser.AUTH_STATUS}',@p_CREATE_DT = '{DateTime.Now.Date}',@p_APPROVE_DT = '{newAppUser.APPROVE_DT}' ,@p_EDIT_DT= '{newAppUser.EDIT_DT}' ,@p_MAKER_ID ='{newAppUser.MAKER_ID}',@p_CHECKER_ID = '{newAppUser.CHECKER_ID}',@p_EDITOR_ID = '{newAppUser.EDITOR_ID}',@DOMAIN =N'{xmldata}'"; var resultStore = _context.Database.ExecuteSqlCommand(command); if (resultStore == -1) { addResult = new GenericResult() { Succeeded = false, Message = "Thêm domain thất bại" }; } addResult = new GenericResult() { Succeeded = true, Message = "Thêm dữ liệu thành công" }; } else { addResult = new GenericResult() { Succeeded = false, Message = "Mật khẩu đơn giản (Hãy thử lại với chữ, số, ký tự đặc biệt)" }; } } catch (Exception ex) { addResult = new GenericResult() { Succeeded = false, Message = "Tên không được trùng" }; _loggingRepository.Add(new Error() { Message = ex.Message, StackTrace = ex.StackTrace, DateCreated = DateTime.Now }); _loggingRepository.Commit(); } actionResult = new ObjectResult(addResult); return(actionResult); }
public async Task <HttpResponseMessage> Create(HttpRequestMessage request, ApplicationUserViewModel applicationUserViewModel) { if (ModelState.IsValid) { var newAppUser = new ApplicationUser(); // tạo mới 1 user newAppUser.UpdateUser(applicationUserViewModel); // map đối tượng viewmodel và model try { newAppUser.Id = Guid.NewGuid().ToString(); var result = await _userManager.CreateAsync(newAppUser, applicationUserViewModel.Password); // tạo mới user if (result.Succeeded) { // add user vào group var listAppUserGroup = new List <ApplicationUserGroup>(); foreach (var group in applicationUserViewModel.Groups) { listAppUserGroup.Add(new ApplicationUserGroup() { GroupId = group.ID, UserId = newAppUser.Id }); //add role cho user var listRole = _appRoleService.GetListRoleByGroupId(group.ID); foreach (var role in listRole) { await _userManager.RemoveFromRoleAsync(newAppUser.Id, role.Name); await _userManager.AddToRoleAsync(newAppUser.Id, role.Name); } } _appGroupService.AddUserToGroups(listAppUserGroup, newAppUser.Id); try { _appGroupService.Save(); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } return(request.CreateResponse(HttpStatusCode.OK, applicationUserViewModel)); } else { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, string.Join(",", result.Errors))); } } // bắt lỗi trùng tên catch (NameDuplicatedException dex) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, dex.Message)); } catch (Exception ex) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message)); } } else { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } }
public async Task <HttpResponseMessage> Update(HttpRequestMessage request, ApplicationUserViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser(); if (String.IsNullOrEmpty(model.Id)) { var tempName = await _userManager.FindByNameAsync(model.UserName); var tempEmail = await _userManager.FindByEmailAsync(model.Email); if (tempName != null) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, "Tài khoản này đã tồn tại")); } if (tempEmail != null) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, "Email này đã tồn tại")); } if (String.IsNullOrEmpty(model.Avatar) || model.Avatar.Contains("images_none.png")) { model.Avatar = "~/Content/admin/img/images_none.png"; } else { byte[] imageBytes = Convert.FromBase64String(model.Avatar.Split(',')[1]); //Save the Byte Array as Image File. string fileName = StringHelper.ToUnsignString(model.UserName) + "-" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".png"; string filePath = Path.Combine(HttpContext.Current.Server.MapPath("~/Content/admin/img/avatar"), fileName); System.IO.File.WriteAllBytes(filePath, imageBytes); model.Avatar = "~/Content/admin/img/avatar/" + fileName; } try { user.Id = Guid.NewGuid().ToString(); user.Avatar = model.Avatar; user.Email = model.Email; user.Address = model.Address; user.FullName = model.FullName; user.Gender = model.Gender; user.PhoneNumber = model.PhoneNumber; user.UserName = model.UserName; user.ProvinceId = model.ProvinceId; user.DisctrictId = model.DistrictId; user.EmailConfirmed = true; user.LockoutEnabled = model.LockoutEnabled; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { var listAppUserGroup = new List <ApplicationUserGroup>(); foreach (var group in model.Groups) { listAppUserGroup.Add(new ApplicationUserGroup() { GroupId = group.Id, UserId = user.Id }); //add role to user var listRole = _appRoleService.GetListRoleByGroupId(group.Id); foreach (var role in listRole) { await _userManager.RemoveFromRoleAsync(user.Id, role.Name); await _userManager.AddToRoleAsync(user.Id, role.Name); } } _appGroupService.AddUserToGroups(listAppUserGroup, user.Id); _appGroupService.Save(); return(request.CreateResponse(HttpStatusCode.Created, model)); } else { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, string.Join(",", result.Errors))); } } catch (Exception ex) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message)); } } else { user = await _userManager.FindByIdAsync(model.Id); ApplicationUser tempName = await _userManager.FindByNameAsync(model.UserName); ApplicationUser tempEmail = await _userManager.FindByEmailAsync(model.Email); if (tempName != null && tempName.UserName != model.UserName) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, "Tài khoản này đã tồn tại")); } if (tempEmail != null && tempEmail.Email != model.Email) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, "Email này đã tồn tại")); } if (String.IsNullOrEmpty(model.Avatar) || model.Avatar.Contains("images_none.png")) { user.Avatar = "~/Content/admin/img/avatar"; } else if (!model.Avatar.StartsWith("~/Content") && user.Avatar != model.Avatar) { byte[] imageBytes = Convert.FromBase64String(model.Avatar.Split(',')[1]); //Save the Byte Array as Image File. string fileName = StringHelper.ToUnsignString(user.UserName) + "-" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".png"; string filePath = Path.Combine(HttpContext.Current.Server.MapPath("~/Content/admin/img/avatar"), fileName); System.IO.File.WriteAllBytes(filePath, imageBytes); model.Avatar = "~/Content/admin/img/avatar/" + fileName; } user.Avatar = model.Avatar; user.Email = model.Email; user.FullName = model.FullName; user.Address = model.Address; user.Gender = model.Gender; user.PhoneNumber = model.PhoneNumber; user.UserName = model.UserName; user.ProvinceId = model.ProvinceId; user.LockoutEnabled = model.LockoutEnabled; user.DisctrictId = model.DistrictId; // user.ApplicationGroupId = CommonConstants.Administrator; var result = await _userManager.UpdateAsync(user); if (result.Succeeded) { var listAppUserGroup = new List <ApplicationUserGroup>(); foreach (var group in model.Groups) { listAppUserGroup.Add(new ApplicationUserGroup() { GroupId = group.Id, UserId = user.Id // model có giá trị đâu mà gán? }); //add role to user var listRole = _appRoleService.GetListRoleByGroupId(group.Id); foreach (var role in listRole) { await _userManager.RemoveFromRoleAsync(user.Id, role.Name); await _userManager.AddToRoleAsync(user.Id, role.Name); } } _appGroupService.AddUserToGroups(listAppUserGroup, user.Id); _appGroupService.Save(); return(request.CreateResponse(HttpStatusCode.Created, model)); } else { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, string.Join(",", result.Errors))); } } } else { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } }