public async Task <ActionResult> Register(RegisterViewModel model) { if (!ModelState.IsValid) { return(View(model)); } if (await UserManager.FindByNameAsync(model.Email) != null) { ModelState.AddModelError("email_invalid", "Email đã tồn tại"); return(View(model)); } var user = new AppUser { UserName = model.Email, Email = model.Email, FirstName = model.FirstName, LastName = model.LastName }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { await UserManager.AddToRolesAsync(user.Id, "Member"); // await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); TempData["RegisterSuccessed"] = true; return(RedirectToAction("Login")); } return(View(model)); }
public async Task <ActionResult> Edit(RoleModificationModel model) { IdentityResult result; if (ModelState.IsValid) { foreach (string userId in model.IdsToAdd ?? new string[] { }) { result = await UserManager.AddToRolesAsync(userId, model.RoleName); if (!result.Succeeded) { return(View("Error", result.Errors)); } } foreach (string userId in model.IdsToDelete ?? new string[] { }) { result = await UserManager.RemoveFromRolesAsync(userId, model.RoleName); if (!result.Succeeded) { return(View("Error", result.Errors)); } } var role = await RoleManager.FindByNameAsync(model.RoleName); RoleManager.AddRolePermission(role, model.PermissionIds, HttpContext.GetOwinContext().Get <AppIdentityDbContext>()); RoleManager.Update(role); return(RedirectToAction("Index")); } return(View("Errors", new string[] { "Role Not Found" })); }
//[Permission(Action = "Update", Function = "USER")] public async Task <HttpResponseMessage> UpdateProfile(HttpRequestMessage request, AppUserViewModel applicationUserViewModel) { if (ModelState.IsValid) { var appUser = await AppUserManager.FindByIdAsync(applicationUserViewModel.Id); try { appUser.UpdateUser(applicationUserViewModel); var result = await AppUserManager.UpdateAsync(appUser); if (result.Succeeded) { var userRoles = await AppUserManager.GetRolesAsync(appUser.Id); var selectedRole = applicationUserViewModel.Roles.ToArray(); selectedRole = selectedRole ?? new string[] { }; await AppUserManager.RemoveFromRolesAsync(appUser.Id, userRoles.ToArray()); await AppUserManager.AddToRolesAsync(appUser.Id, selectedRole.ToArray()); return(request.CreateResponse(HttpStatusCode.OK, applicationUserViewModel)); } return(request.CreateErrorResponse(HttpStatusCode.BadRequest, Common.Constants.MessageSystem.MessageDuplicateEmail)); } catch (NameDuplicatedException dex) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, dex.Message)); } } return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); }
public async Task <RepositoryResult <IList <string> > > SetRoleByUserIdAsync(int userId, IList <string> roleList, bool isAdmin = false) { try { if (userId <= 0 || roleList == null) { return(new RepositoryResult <IList <string> >(HttpStatusCode.BadRequest)); } var user = AppUserManager.FindById(userId); if (user == null) { return(new RepositoryResult <IList <string> >(HttpStatusCode.NotFound)); } var currentRoles = await AppUserManager.GetRolesAsync(user.Id); if (!isAdmin) { currentRoles = currentRoles.Where(rl => rl != "admin").ToList(); } var rolesNotExists = roleList.Except(AppRoleManager.Roles.Select(x => x.Name)).ToArray(); if (rolesNotExists.Count() > 0) { return(new RepositoryResult <IList <string> >(HttpStatusCode.BadRequest, string.Format("ロール'{0}'は存在していません。", string.Join(",", rolesNotExists)))); } IdentityResult removeResult = await AppUserManager.RemoveFromRolesAsync(user.Id, currentRoles.ToArray()); if (!removeResult.Succeeded) { return(new RepositoryResult <IList <string> >(HttpStatusCode.BadRequest, "権限の剥奪に失敗しました。") { identityResult = removeResult }); } IdentityResult addResult = await AppUserManager.AddToRolesAsync(user.Id, roleList.ToArray()); if (!addResult.Succeeded) { return(new RepositoryResult <IList <string> >(HttpStatusCode.BadRequest, "権限の付与に失敗しました。") { identityResult = addResult }); } return(new RepositoryResult <IList <string> >(HttpStatusCode.OK, roleList)); } catch (Exception ex) { throw ex; } }
public async Task <IHttpActionResult> AssignRolesToUser([FromUri] string id, [FromBody] string[] rolesToAssign) { try { // Find brugeren var appUser = await AppUserManager.FindByIdAsync(id); // Hvis brugere ikke findes, returneres Not Found if (appUser == null) { return(NotFound()); } // Hent alle brugerens roller var currentRoles = await AppUserManager.GetRolesAsync(appUser.Id); // Find eventuelt ikke-eksisterende roller i det tilsendte (de tilsendte undtagen dem der findes i systemet) var rolesNotExists = rolesToAssign.Except(AppRoleManager.Roles.Select(x => x.Name)).ToArray(); // Hvis der er roller der ikke findes i system returneres Bad Request if (rolesNotExists.Count() > 0) { ModelState.AddModelError("", string.Format("Rollerne '{0}' eksisterer ikke i systemet", string.Join(",", rolesNotExists))); return(BadRequest(ModelState)); } // Fjern brugerens roller IdentityResult removeResult = await AppUserManager.RemoveFromRolesAsync(appUser.Id, currentRoles.ToArray()); // Hvis de ikke kan fjernes, returnes Bad Reqeust if (!removeResult.Succeeded) { ModelState.AddModelError("", "Roller kunne ikke fjernes"); return(BadRequest(ModelState)); } // Tilføj de nye roller IdentityResult addResult = await AppUserManager.AddToRolesAsync(appUser.Id, rolesToAssign); // Hvis de ikke kan tilføjes, returneres Bad Request if (!addResult.Succeeded) { ModelState.AddModelError("", "Roller kunne ikke tilføjes"); return(BadRequest(ModelState)); } return(Ok()); } catch (Exception e) { return(InternalServerError(e)); } }
public async Task <HttpResponseMessage> Update(HttpRequestMessage request, AppUserViewModel applicationUserViewModel) { var identity = (ClaimsIdentity)User.Identity; IEnumerable <Claim> claims = identity.Claims; if (ModelState.IsValid) { var appUser = await AppUserManager.FindByIdAsync(applicationUserViewModel.Id); try { appUser.UpdateUser(applicationUserViewModel); var result = await AppUserManager.UpdateAsync(appUser); if (result.Succeeded) { var userRoles = await AppUserManager.GetRolesAsync(appUser.Id); await AppUserManager.RemoveFromRolesAsync(appUser.Id, userRoles.ToArray()); var selectedRole = applicationUserViewModel.Roles.ToArray(); await AppUserManager.AddToRolesAsync(appUser.Id, applicationUserViewModel.Roles.ToArray()); Log log = new Log() { AppUserId = claims.FirstOrDefault().Value, Content = Notification.UPDATE_USER, Created = DateTime.Now }; _logService.Create(log); _logService.Save(); 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)); } } else { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } }
public async Task <ContentResult> EditUser(UserViewModel user) { string json; //user.Roles Not a list or rather a list of one comma seperated string var incRoles = user.Roles.FirstOrDefault().Split(',').ToArray(); var deletedRoles = _userManager.GetRolesAsync(user.Id).Result.Except(incRoles); var addedRoles = incRoles.Except(_userManager.GetRolesAsync(user.Id).Result); var userDb = _userManager.FindByIdAsync(user.Id).Result; if (userDb != null) { userDb.Email = user.Email; userDb.UserName = user.UserName; await _userManager.RemoveFromRolesAsync(userDb.Id, deletedRoles.ToArray()); await _userManager.AddToRolesAsync(userDb.Id, addedRoles.ToArray()); await _userManager.UpdateAsync(userDb); } ModelState.Clear(); if (ModelState.IsValid) { json = JsonConvert.SerializeObject(new { id = userDb.Id, success = true, message = "Changes saved successfully." }); } else { json = JsonConvert.SerializeObject(new { id = 0, success = false, message = "Failed to save the changes." }); } return(Content(json, "application/json")); }
public async Task <HttpResponseMessage> Create(HttpRequestMessage request, AppUserViewModel applicationUserViewModel) { if (ModelState.IsValid) { var identity = (ClaimsIdentity)User.Identity; IEnumerable <Claim> claims = identity.Claims; var newAppUser = new AppUser(); newAppUser.UpdateUser(applicationUserViewModel); try { newAppUser.Id = Guid.NewGuid().ToString(); var result = await AppUserManager.CreateAsync(newAppUser, applicationUserViewModel.Password); if (result.Succeeded) { var roles = applicationUserViewModel.Roles.ToArray(); await AppUserManager.AddToRolesAsync(newAppUser.Id, roles); Log log = new Log() { AppUserId = claims.FirstOrDefault().Value, Content = Notification.CREATE_USER, Created = DateTime.Now }; _logService.Create(log); _logService.Save(); 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, AppUserViewModel applicationUserViewModel) { if (ModelState.IsValid) { var appUser = await AppUserManager.FindByIdAsync(applicationUserViewModel.Id); try { appUser.UpdateUser(applicationUserViewModel); //string resetToken = await AppUserManager.GeneratePasswordResetTokenAsync(appUser.Id); //var passwordResult = await AppUserManager.ResetPasswordAsync(appUser.Id, resetToken, applicationUserViewModel.Password); var result = await AppUserManager.UpdateAsync(appUser); if (result.Succeeded) { var userRoles = await AppUserManager.GetRolesAsync(appUser.Id); var selectedRoles = applicationUserViewModel.Roles.ToArray(); selectedRoles = selectedRoles ?? new string[] { }; await AppUserManager.AddToRolesAsync(appUser.Id, selectedRoles.Except(userRoles).ToArray()); return(request.CreateResponse(HttpStatusCode.OK, applicationUserViewModel)); } else { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, string.Join(",", result.Errors))); } } catch (NameDuplicatedException dex) { LogError(dex); return(request.CreateErrorResponse(HttpStatusCode.BadRequest, dex.Message)); } catch (Exception ex) { LogError(ex); return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message)); } } else { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } }
public async Task <HttpResponseMessage> Update(HttpRequestMessage request, ApplicationUserViewModel applicationUserViewModel) { if (ModelState.IsValid) { AppUser userDb = await AppUserManager.FindByIdAsync(applicationUserViewModel.Id); try { if (userDb.Avatar != applicationUserViewModel.Avatar && userDb.Avatar != null) { DeleteElementImage(userDb.Avatar); } userDb.UpdateUser(applicationUserViewModel); var result = await AppUserManager.UpdateAsync(userDb); if (result.Succeeded) { var roles = await AppUserManager.GetRolesAsync(applicationUserViewModel.Id); await AppUserManager.RemoveFromRolesAsync(applicationUserViewModel.Id, roles.ToArray()); var selectRoles = applicationUserViewModel.Roles.ToArray(); selectRoles = selectRoles ?? new string[] { }; await AppUserManager.AddToRolesAsync(applicationUserViewModel.Id, selectRoles); return(request.CreateResponse(HttpStatusCode.Created, applicationUserViewModel)); } else { return(request.CreateErrorResponse(HttpStatusCode.BadGateway, string.Join(",", result.Errors))); } } catch (NameDuplicatedException dex) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, dex.Message)); } } else { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } }
public async Task <HttpResponseMessage> Update(HttpRequestMessage request, AppUserViewModel applicationUserViewModel) { if (ModelState.IsValid) { var appUser = await AppUserManager.FindByIdAsync(applicationUserViewModel.Id); try { appUser.UpdateUser(applicationUserViewModel); var result = await AppUserManager.UpdateAsync(appUser); if (result.Succeeded) { var userRoles = await AppUserManager.GetRolesAsync(appUser.Id); foreach (var role in userRoles) { await AppUserManager.RemoveFromRoleAsync(appUser.Id, role); } var selectedRole = applicationUserViewModel.Roles.ToArray(); selectedRole = selectedRole ?? new string[] { }; await AppUserManager.AddToRolesAsync(appUser.Id, selectedRole); 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)); } } else { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } }
public async Task <HttpResponseMessage> Create(HttpRequestMessage request, AppUserViewModel applicationUserViewModel) { if (ModelState.IsValid) { var newAppUser = new AppUser(); newAppUser.UpdateUser(applicationUserViewModel); try { newAppUser.Id = Guid.NewGuid().ToString(); var result = await AppUserManager.CreateAsync(newAppUser, applicationUserViewModel.Password); if (result.Succeeded) { var roles = applicationUserViewModel.Roles.ToArray(); await AppUserManager.AddToRolesAsync(newAppUser.Id, roles); return(request.CreateResponse(HttpStatusCode.OK, applicationUserViewModel)); } else { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, string.Join(",", result.Errors))); } } catch (NameDuplicatedException dex) { LogError(dex); return(request.CreateErrorResponse(HttpStatusCode.BadRequest, dex.Message)); } catch (Exception ex) { LogError(ex); return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message)); } } else { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } }
public async Task <IHttpActionResult> AssignRolesToUser([FromUri] string id, [FromBody] string[] rolesToAssign) { var appUser = await AppUserManager.FindByIdAsync(id); if (appUser == null) { return(NotFound()); } var currentRoles = await AppUserManager.GetRolesAsync(appUser.Id); var roleNotExists = rolesToAssign.Except(AppRoleManager.Roles.Select(x => x.Name)).ToArray(); if (roleNotExists.Any()) { ModelState.AddModelError("", $"those roles not exist in the systeme {roleNotExists}"); return(BadRequest(ModelState)); } IdentityResult removeResult = await AppUserManager.RemoveFromRoleAsync(appUser.Id, currentRoles.ToArray().ToString()); if (!removeResult.Succeeded) { ModelState.AddModelError("", "Failed to remove roles dor user"); return(BadRequest(ModelState)); } IdentityResult addResult = await AppUserManager.AddToRolesAsync(appUser.Id, rolesToAssign); if (!addResult.Succeeded) { ModelState.AddModelError("", "Failed to Add roles for user"); return(BadRequest(ModelState)); } return(Ok()); }
public async Task <IHttpActionResult> Update(AppUserViewModel applicationUserViewModel) { if (ModelState.IsValid) { var appUser = await AppUserManager.FindByIdAsync(applicationUserViewModel.Id); try { appUser.UpdateUser(applicationUserViewModel); var result = await AppUserManager.UpdateAsync(appUser); if (result.Succeeded) { var userRoles = await AppUserManager.GetRolesAsync(appUser.Id); var selectedRole = applicationUserViewModel.Roles.ToArray(); selectedRole = selectedRole ?? new string[] { }; await AppUserManager.AddToRolesAsync(appUser.Id, selectedRole.Except(userRoles).ToArray()); return(Ok(applicationUserViewModel)); } else { return(BadRequest()); } } catch (NameDuplicatedException) { return(BadRequest()); } } else { return(BadRequest()); } }
public async Task <IHttpActionResult> AssignRolesToUser([FromUri] string id, [FromBody] string[] rolesToAssign) { var appUser = await AppUserManager.FindByIdAsync(id); if (appUser == null) { return(NotFound()); } var currentRoles = await AppUserManager.GetRolesAsync(appUser.Id); var rolesNotExists = rolesToAssign.Except(AppRoleManager.Roles.Select(x => x.Name)).ToArray(); if (rolesNotExists.Count() > 0) { ModelState.AddModelError("", string.Format("Roles '{0}' does not exixts in the system", string.Join(",", rolesNotExists))); return(BadRequest(ModelState)); } IdentityResult removeResult = await AppUserManager.RemoveFromRolesAsync(appUser.Id, currentRoles.ToArray()); if (!removeResult.Succeeded) { ModelState.AddModelError("", "Failed to remove user roles"); return(BadRequest(ModelState)); } IdentityResult addResult = await AppUserManager.AddToRolesAsync(appUser.Id, rolesToAssign); if (!addResult.Succeeded) { ModelState.AddModelError("", "Failed to add user roles"); return(BadRequest(ModelState)); } return(Ok()); }
public async Task <IHttpActionResult> Create(AppUserViewModel applicationUserViewModel) { if (ModelState.IsValid) { var newAppUser = new AspNetUser(); newAppUser.UpdateUser(applicationUserViewModel); try { newAppUser.Id = Guid.NewGuid().ToString(); var result = await AppUserManager.CreateAsync(newAppUser, applicationUserViewModel.Password); if (result.Succeeded) { var roles = applicationUserViewModel.Roles.ToArray(); await AppUserManager.AddToRolesAsync(newAppUser.Id, roles); return(Ok(applicationUserViewModel)); } else { return(BadRequest()); } } catch (NameDuplicatedException) { return(BadRequest()); } catch (Exception) { return(BadRequest()); } } else { return(BadRequest()); } }
//[Permission(Action = "Update", Function = "USER")] public async Task <HttpResponseMessage> Update(HttpRequestMessage request, AppUserViewModel applicationUserViewModel) { if (ModelState.IsValid) { if (User != null && MemoryCacheHelper.RemoveUserEditByAdmin(User.Identity.Name) && User.Identity.Name != applicationUserViewModel.UserName) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, CommonConstants.Error_Edit_By_Admin)); } var appUser = await AppUserManager.FindByIdAsync(applicationUserViewModel.Id); if (applicationUserViewModel.Roles.Contains(CommonConstants.GroupLead) && applicationUserViewModel.GroupId != null) { var groupleaderID = AppRoleManager.FindByNameAsync(CommonConstants.GroupLead).Result.Id; var groupLeader = AppUserManager.Users.Where(x => x.Roles.Any(r => r.RoleId.Equals(groupleaderID) && x.GroupId == applicationUserViewModel.GroupId)).FirstOrDefault(); if (groupLeader != null && !groupLeader.Equals(appUser)) { return(request.CreateResponse(HttpStatusCode.BadRequest, MessageSystem.Error_Exist_Group_Lead)); } } var roleIDNew = AppRoleManager.FindByNameAsync(applicationUserViewModel.Roles.FirstOrDefault()).Result.Id; if (applicationUserViewModel.UserName == User.Identity.Name && appUser.Roles.FirstOrDefault().RoleId != roleIDNew) { return(request.CreateResponse(HttpStatusCode.BadRequest, MessageSystem.Unable_Update_Role_YourSelf)); } var checkStartDateAndBirthDay = _userService.CheckStartDateAndBirthDay(applicationUserViewModel.BirthDay, applicationUserViewModel.StartWorkingDay); if (!string.IsNullOrEmpty(checkStartDateAndBirthDay)) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, checkStartDateAndBirthDay)); } try { var FingerManchineUser = _fingermachineuserService.GetFingerMachineUserByUserID(applicationUserViewModel.Id); var lstUserNoAdd = applicationUserViewModel.ListUserNo.Split('-').ToList().Except(FingerManchineUser.Select(x => x.ID)); if (!ValidateUserNo(lstUserNoAdd)) { return(request.CreateResponse(HttpStatusCode.BadRequest, MessageSystem.MessageUserNoNotValid)); } if (FingerManchineUser.Count > 0) { var lstUserNoRemove = FingerManchineUser.Select(x => x.ID).Except(applicationUserViewModel.ListUserNo.Split('-').ToList()); if (FingerManchineUser.Select(x => x.ID).ToList().Count() > 0 && (lstUserNoAdd.Count() > 0 || lstUserNoRemove.Count() > 0)) { if (_fingermachineuserService.IsUserNoExist(lstUserNoAdd.ToList()))//_fingermachineuserService.IsFingerManchineUserExist(applicationUserViewModel.AccNameInMachineFinger)) { return(request.CreateResponse(HttpStatusCode.BadRequest, MessageSystem.MessageUserNoExist)); } if (_fingerTimeSheetService.IsUserNoExistTimeSheet(lstUserNoAdd.ToList()) || _fingerTimeSheetService.IsUserNoExistTimeSheet(lstUserNoRemove.ToList())) { return(request.CreateResponse(HttpStatusCode.BadRequest, MessageSystem.MessageExistTimeSheetEmpNo)); } _fingermachineuserService.Update(lstUserNoAdd.ToList(), lstUserNoRemove.ToList(), applicationUserViewModel.Id); } } else { if (_fingermachineuserService.IsUserNoExist(lstUserNoAdd.ToList())) { return(request.CreateResponse(HttpStatusCode.BadRequest, MessageSystem.MessageUserNoExist)); } } if (applicationUserViewModel.ListUserNo.Split('-').Count() > 0 && !string.IsNullOrEmpty(applicationUserViewModel.ListUserNo.Split('-')[0]) && FingerManchineUser.Count == 0) { foreach (var item in applicationUserViewModel.ListUserNo.Split('-').Distinct()) { _fingermachineuserService.Create(new FingerMachineUser() { ID = item, UserId = applicationUserViewModel.Id }); } _unitOfWork.Commit(); } //Update Not Done appUser.UpdateUser(applicationUserViewModel); var result = await AppUserManager.UpdateAsync(appUser); if (result.Succeeded) { if (User.IsInRole(CommonConstants.Admin) && User.Identity.Name != applicationUserViewModel.UserName) { _userService.AddListUserEditByAdmin(applicationUserViewModel.UserName); } var userRoles = await AppUserManager.GetRolesAsync(appUser.Id); var selectedRole = applicationUserViewModel.Roles.ToArray(); selectedRole = selectedRole ?? new string[] { }; await AppUserManager.RemoveFromRolesAsync(appUser.Id, userRoles.ToArray()); await AppUserManager.AddToRolesAsync(appUser.Id, selectedRole.ToArray()); return(request.CreateResponse(HttpStatusCode.OK, applicationUserViewModel)); } return(request.CreateResponse(HttpStatusCode.BadRequest, Common.Constants.MessageSystem.MessageDuplicateEmail)); } catch (NameDuplicatedException dex) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, dex.Message)); } } return(request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); }
public async Task <HttpResponseMessage> Create(HttpRequestMessage request, AppUserViewModel applicationUserViewModel) { if (ModelState.IsValid) { if (User != null && MemoryCacheHelper.RemoveUserEditByAdmin(User.Identity.Name)) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, CommonConstants.Error_Edit_By_Admin)); } if (applicationUserViewModel.Roles.Contains(CommonConstants.GroupLead) && applicationUserViewModel.GroupId != null) { var groupleaderID = AppRoleManager.FindByNameAsync(CommonConstants.GroupLead).Result.Id; var groupLeader = AppUserManager.Users.Where(x => x.Roles.Any(r => r.RoleId.Equals(groupleaderID) && x.GroupId == applicationUserViewModel.GroupId)).FirstOrDefault(); if (groupLeader != null && !groupLeader.Equals(applicationUserViewModel)) { return(request.CreateResponse(HttpStatusCode.BadRequest, MessageSystem.Error_Create_Exist_Group_Lead)); } } var username = AppUserManager.FindByNameAsync(applicationUserViewModel.UserName).Result; var email = AppUserManager.FindByEmailAsync(applicationUserViewModel.Email).Result; //if (username != null && email != null) //{ // if (username.Status == false) // { // return request.CreateResponse(HttpStatusCode.OK, "Inaction"); // } //} if (username != null) { if (username.Status == true) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, MessageSystem.MessageDuplicateUserName)); } } if (email != null) { if (email.Status == true) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, MessageSystem.MessageDuplicateEmail)); } else { return(request.CreateResponse(HttpStatusCode.OK, "Inaction")); } } var newAppUser = new AppUser(); newAppUser.UpdateUser(applicationUserViewModel); newAppUser.Status = true; try { newAppUser.Id = Guid.NewGuid().ToString(); if (applicationUserViewModel.ListUserNo != null && applicationUserViewModel.ListUserNo.Count() > 0) { if (!ValidateUserNo(applicationUserViewModel.ListUserNo.Split('-'))) { return(request.CreateResponse(HttpStatusCode.BadRequest, MessageSystem.MessageUserNoNotValid)); } if (_fingermachineuserService.IsUserNoExist(applicationUserViewModel.ListUserNo.Split('-').ToList())) { return(request.CreateResponse(HttpStatusCode.BadRequest, MessageSystem.MessageUserNoExist)); } } var checkStartDateAndBirthDay = _userService.CheckStartDateAndBirthDay(applicationUserViewModel.BirthDay, applicationUserViewModel.StartWorkingDay); if (!string.IsNullOrEmpty(checkStartDateAndBirthDay)) { return(request.CreateErrorResponse(HttpStatusCode.BadRequest, checkStartDateAndBirthDay)); } var result = await AppUserManager.CreateAsync(newAppUser, applicationUserViewModel.Password); if (result.Succeeded) { var roles = applicationUserViewModel.Roles.ToArray(); await AppUserManager.AddToRolesAsync(newAppUser.Id, roles); //Create entitle day of user new _entitleDayAppUserService.CreateEntitleDayAppUser(newAppUser); //Add user into table config delegation var configDelegation = new ConfigDelegation(); configDelegation.UserId = newAppUser.Id; _configDelegateionService.Add(configDelegation); _configDelegateionService.SaveChange(); if (applicationUserViewModel.ListUserNo != null) { List <string> lstUserno = applicationUserViewModel.ListUserNo.Split('-').ToList(); if (lstUserno.Count() > 0) { if (_fingermachineuserService.IsUserNoExist(lstUserno)) { return(request.CreateResponse(HttpStatusCode.BadRequest, MessageSystem.MessageUserNoExist)); } else { foreach (var item in lstUserno) { _fingermachineuserService.Create(new FingerMachineUser() { ID = item, UserId = newAppUser.Id }); } _unitOfWork.Commit(); } } } 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)); } }
private async Task AddRoleToUser(UserOrgRS model, string id) { if (model.IsEmployee) { var roleResult = await AppUserManager.AddToRolesAsync(id, KpiUserRole.Employee); } else { if (await AppUserManager.IsInRoleAsync(id, KpiUserRole.Employee)) { await AppUserManager.RemoveFromRoleAsync(id, KpiUserRole.Employee); } } if (model.IsEmpManager) { var roleResult = await AppUserManager.AddToRolesAsync(id, KpiUserRole.EmpManager); } else { if (await AppUserManager.IsInRoleAsync(id, KpiUserRole.EmpManager)) { await AppUserManager.RemoveFromRoleAsync(id, KpiUserRole.EmpManager); } } if (model.IsEVoucherDistributor) { var roleResult = await AppUserManager.AddToRolesAsync(id, KpiUserRole.EVoucherDistributor); } else { if (await AppUserManager.IsInRoleAsync(id, KpiUserRole.EVoucherDistributor)) { await AppUserManager.RemoveFromRoleAsync(id, KpiUserRole.EVoucherDistributor); } } if (model.IsBudgetDistributor) { var roleResult = await AppUserManager.AddToRolesAsync(id, KpiUserRole.BudgetDistributor); } else { if (await AppUserManager.IsInRoleAsync(id, KpiUserRole.BudgetDistributor)) { await AppUserManager.RemoveFromRoleAsync(id, KpiUserRole.BudgetDistributor); } } if (model.IsEVoucherManager) { var roleResult = await AppUserManager.AddToRolesAsync(id, KpiUserRole.EVoucherManager); } else { if (await AppUserManager.IsInRoleAsync(id, KpiUserRole.EVoucherManager)) { await AppUserManager.RemoveFromRoleAsync(id, KpiUserRole.EVoucherManager); } } if (model.IsLevel2Manager) { var roleResult = await AppUserManager.AddToRolesAsync(id, KpiUserRole.Level2Manager); } else { if (await AppUserManager.IsInRoleAsync(id, KpiUserRole.Level2Manager)) { await AppUserManager.RemoveFromRoleAsync(id, KpiUserRole.Level2Manager); } } if (model.IsDistributorApprover) { var roleResult = await AppUserManager.AddToRolesAsync(id, KpiUserRole.DistributorApprover); } else { if (await AppUserManager.IsInRoleAsync(id, KpiUserRole.DistributorApprover)) { await AppUserManager.RemoveFromRoleAsync(id, KpiUserRole.DistributorApprover); } } if (model.DivisionManager) { var roleResult = await AppUserManager.AddToRolesAsync(id, KpiUserRole.DivisionManager); } else { if (await AppUserManager.IsInRoleAsync(id, KpiUserRole.DivisionManager)) { await AppUserManager.RemoveFromRoleAsync(id, KpiUserRole.DivisionManager); } } }