survey-webapp/SurveyBackend/SurveyBackend.Services/Services/AnswerVariantsService.cs

53 lines
No EOL
1.9 KiB
C#

using SurveyLib.Core.Models;
using SurveyLib.Core.Repositories;
using SurveyLib.Core.Services;
namespace SurveyBackend.Services.Services;
public class AnswerVariantsService : IAnswerVariantsService
{
private readonly IAnswerVariantsRepository _answerVariantsRepository;
public AnswerVariantsService(IAnswerVariantsRepository answerVariantsRepository)
{
_answerVariantsRepository = answerVariantsRepository;
}
public async Task AddAnswerVariantAsync(AnswerVariant answerVariant)
{
// TODO: проверка существования такого вопроса
await _answerVariantsRepository.AddAsync(answerVariant);
}
public async Task UpdateAnswerVariantAsync(AnswerVariant answerVariant)
{
// TODO: опять проверка существования, но еще и варианта
var answerVariantBase = await _answerVariantsRepository.GetByIdAsNoTrackingAsync(answerVariant.Id);
if (answerVariantBase is null)
{
throw new Exception("Answer Variant not found");
}
answerVariant.QuestionId = answerVariantBase.QuestionId;
await _answerVariantsRepository.UpdateAsync(answerVariant);
}
public async Task DeleteAnswerVariantAsync(int id)
{
// TODO: проверка существования варианта
await _answerVariantsRepository.DeleteAsync(id);
}
public async Task<AnswerVariant> GetAnswerVariantByIdAsync(int id)
{
// TODO: проверка существования варианта
return await _answerVariantsRepository.GetByIdAsync(id);
}
public async Task<IEnumerable<AnswerVariant>> GetAnswerVariantsByQuestionIdAsync(int questionId)
{
// TODO: проверка существования вопроса
return await _answerVariantsRepository.GetAnswerVariantsByQuestionIdAsync(questionId);
}
}