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
                }));
            }
        }
Exemple #2
0
        public async Task <IActionResult> AdministartionAuthenticate([FromBody] AdministartionAuthDTO adminAuthDTO)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest());
                }

                Admin existingAdmin = await adminCrudService.CheckAdminExist(adminAuthDTO.Login);

                Moderator existingModerator = await moderatorsCrudService.CheckModeratorExist(adminAuthDTO.Login);

                if (existingModerator == null && existingAdmin == null)
                {
                    return(NotFound(new ResponseDTO()
                    {
                        Message = "Данный пользователь не найден или даннные авторизаций не верны", Status = false
                    }));
                }
                else if (existingModerator != null && existingAdmin == null)
                {
                    Moderator moderator = administrationAuthService.ModeratorsAuthenticate(existingModerator, adminAuthDTO.Password);
                    if (moderator == null)
                    {
                        return(NotFound(new ResponseDTO()
                        {
                            Message = "Данный пользователь не найден или даннные авторизаций не верны", Status = false
                        }));
                    }
                    return(Ok(new { moderator }));
                }
                else if (existingModerator == null && existingAdmin != null)
                {
                    Admin admin = administrationAuthService.AdminAuthenticate(existingAdmin, adminAuthDTO.Password);
                    if (admin == null)
                    {
                        return(NotFound(new ResponseDTO()
                        {
                            Message = "Данный пользователь не найден или даннные авторизаций не верны", Status = false
                        }));
                    }
                    return(Ok(new { admin }));
                }
                else
                {
                    return(NotFound(new ResponseDTO()
                    {
                        Message = "Сообщите о проблеме администратору, данных пользователей было найдено двое.",
                        Status = false
                    }));
                }
            }
            catch (ObjectNotFoundException ex)
            {
                logger.LogError(ex.Message);
                return(NotFound(new ResponseDTO()
                {
                    Message = "Данный пользователь не найден", Status = false
                }));
            }
            catch (Exception ex)
            {
                logger.LogError(ex.Message);
                return(StatusCode(500, new ResponseDTO()
                {
                    Status = false
                }));
            }
        }