going to question management

This commit is contained in:
Вячеслав 2025-04-20 19:31:38 +05:00
parent 00e93fde2e
commit 585d6ac6e3
7 changed files with 150 additions and 0 deletions

View file

@ -0,0 +1,10 @@
namespace SurveyBackend.Services.Exceptions;
public class BadRequestException : ServiceException
{
public override int StatusCode => 400;
public BadRequestException(string message) : base(message)
{
}
}

View file

@ -0,0 +1,54 @@
using SurveyBackend.Core.Contexts;
using SurveyBackend.Services.Exceptions;
using SurveyLib.Core.Models;
using SurveyLib.Core.Repositories;
using SurveyLib.Core.Services;
namespace SurveyBackend.Services.Services;
public class QuestionService : IQuestionService
{
private readonly IQuestionRepository _questionRepository;
public QuestionService(IQuestionRepository questionRepository, IUserContext userContext)
{
_questionRepository = questionRepository;
}
public async Task AddQuestionAsync(QuestionBase question)
{
await _questionRepository.AddAsync(question);
}
public async Task UpdateQuestionAsync(QuestionBase question)
{
await _questionRepository.UpdateAsync(question);
}
public async Task DeleteQuestionAsync(int id)
{
var question = await _questionRepository.GetByIdAsync(id);
if (question is null)
{
throw new NotFoundException("Question not found");
}
await _questionRepository.DeleteAsync(question);
}
public async Task<QuestionBase> GetQuestionByIdAsync(int id)
{
var question = await _questionRepository.GetByIdAsync(id);
if (question is null)
{
throw new NotFoundException("Question not found");
}
return question;
}
public async Task<IEnumerable<QuestionBase>> GetQuestionsBySurveyIdAsync(int surveyId)
{
return await _questionRepository.GetQuestionsBySurveyId(surveyId);
}
}

View file

@ -42,6 +42,8 @@ public class SurveyService : ISurveyService
{
throw new UnauthorizedAccessException("You are not authorized to delete this survey.");
}
await _surveyRepository.DeleteAsync(survey);
}
public async Task<IEnumerable<Survey>> GetSurveysAsync()