public async Task <int> SaveAsync(BL.Role entity) { try { if (entity == null) { return(0); } using (var context = _contextFactory.GetProductContext()) { var entityModel = await context .Roles .FirstOrDefaultAsync(item => item.Id.Equals(entity.Id)); if (entityModel == null) { entityModel = new DA.Role(); MapForUpdateEntity(entity, entityModel); await context.Roles.AddAsync(entityModel); } else { MapForUpdateEntity(entity, entityModel); } context.SaveChanges(); return(entityModel.Id); } } catch (Exception ex) { throw ex; } }
public async Task <IActionResult> LoginAdmin([FromBody] LoginModel model) { try { if (ModelState.IsValid) { var userList = await _userRepo.FindByAsync(u => u.Email == model.Email && u.Password == model.Password); var user = userList.FirstOrDefault(); if (user != null) { int roleId = user.RoleId.HasValue ? (int)user.RoleId : 0; BL.Role userRole = await _roleRepo.GetByIdAsync(roleId); if (userRole.Name != "admin") { return(BadRequest($"{model.Email}, к сожалению вы не ADMIN. Войдите как ADMIN")); } await Authenticate(user); // аутентификация return(Ok(user)); } return(BadRequest($"Пользователь {model.Email} не найден или пароль неверный.")); } return(BadRequest(ModelState)); } catch (Exception ex) { return(BadRequest($"{ex.Message}")); } }
public async Task <IActionResult> Register([FromBody] RegisterModel model) { try { if (ModelState.IsValid) { var userList = await _userRepo.FindByAsync(u => u.Email == model.Email); var user = userList.FirstOrDefault(); if (user == null) { var roleList = await _roleRepo.FindByAsync(r => r.Name == "user"); BL.Role userRole = roleList.FirstOrDefault(); // добавляем пользователя в бд var newUserId = await _userRepo.SaveAsync(new BL.User { Name = model.Name, Email = model.Email, Password = model.Password, RoleId = userRole?.Id, Role = userRole }); // добавляем пользователя в бд var newUser = await _userRepo.GetByIdAsync(newUserId); await Authenticate(newUser); // аутентификация return(Ok(newUser)); } return(BadRequest($"Пользователь {model.Email} уже зарегистрирован.")); } return(BadRequest(ModelState)); } catch (Exception ex) { return(BadRequest($"{ex.Message}")); } }
private void MapForUpdateEntity(BL.Role entity, DA.Role daEntity) { daEntity.Id = entity.Id; daEntity.Name = entity.Name; }