コード例 #1
0
        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
            });
        }
コード例 #2
0
        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
                }));
            }
        }