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

64 lines
No EOL
2.1 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using SurveyBackend.Services.Exceptions;
using SurveyLib.Core.Models;
using SurveyLib.Core.Repositories;
using SurveyLib.Core.Services;
namespace SurveyBackend.Services.Services;
public class CompletionService : ICompletionService
{
private readonly ICompletionRepository _completionRepository;
private readonly ISurveyRepository _surveyRepository;
public CompletionService(ICompletionRepository completionRepository, ISurveyRepository surveyRepository)
{
_completionRepository = completionRepository;
_surveyRepository = surveyRepository;
}
public async Task AddCompletionAsync(Completion completion)
{
var survey = await _surveyRepository.GetByIdAsync(completion.SurveyId);
if (survey is null)
{
throw new NotFoundException("Survey not found");
}
await _completionRepository.AddAsync(completion);
}
public async Task UpdateCompletionAsync(Completion completion)
{
// TODO: лол а что вообще значит ОбновитьВыполнение, надо выпилить из SurveyLib
await _completionRepository.UpdateAsync(completion);
}
public async Task DeleteCompletionAsync(int id)
{
// TODO: да и удалять их как-то бессмысленно
await _completionRepository.DeleteAsync(id);
}
public async Task<Completion> GetCompletionByIdAsync(int id)
{
var completion = await _completionRepository.GetByIdAsync(id);
if (completion is null)
{
throw new NotFoundException("Completion not found");
}
return completion;
}
public async Task<IEnumerable<Completion>> GetCompletionsBySurveyIdAsync(int surveyId)
{
var survey = await _surveyRepository.GetByIdAsync(surveyId);
if (survey is null)
{
throw new NotFoundException("Survey not found");
}
// TODO: проверить что запрашивает создатель (хз как)
return await _completionRepository.GetCompletionsBySurveyIdAsync(surveyId);
}
}