public async Task <ResponseDTO> AddModerator(Admin admin, ModeratorDTO addModeratorDTO) { string password = BCrypt.Net.BCrypt.HashPassword(addModeratorDTO.Password); Moderator moderator = new Moderator() { Login = addModeratorDTO.Login, Password = password, LastName = addModeratorDTO.LastName, FirstName = addModeratorDTO.FirstName, Role = Role.Moderator }; context.Moderators.Add(moderator); int savedCount = await context.SaveChangesAsync(); if (savedCount > 0) { Admin newAdmin = admin; newAdmin.AddedModerators += 1; context.Entry(admin).CurrentValues.SetValues(newAdmin); await context.SaveChangesAsync(); } return(new ResponseDTO() { Message = $"Вы успешно добавили {moderator.LastName} {moderator.FirstName} в роли модератора", Status = true, ResponseData = moderator }); }
public async Task <IActionResult> AddModerator([FromBody] ModeratorDTO addModeratorDTO) { try { if (!ModelState.IsValid) { return(BadRequest()); } ResponseDTO check = await moderatorsCrudService.CheckModeratorExistForAdd(addModeratorDTO.Login); if (check.Status == false) { return(Conflict(check)); } check = await adminsCrudService.CheckAdminExistForAdd(addModeratorDTO.Login); if (check.Status == false) { return(Conflict(check)); } Admin admin = await adminsCrudService.CheckAdminExist(addModeratorDTO.AdminId); ResponseDTO answer = await moderatorsCrudService.AddModerator(admin, addModeratorDTO); logger.LogInformation($"Модератор: {addModeratorDTO.Login}, был добавлен Админом {admin.Login}"); Moderator moderator = await moderatorsCrudService.CheckModeratorExist(answer.ResponseData.Id); moderator = moderator.ModeratorWithoutPassword(); return(Ok(new { answer, moderator })); } catch (Exception ex) { logger.LogError(ex.Message); return(StatusCode(500, new ResponseDTO() { Status = false })); } }