added repository interfaces for all models

added Completion model
This commit is contained in:
Вячеслав 2025-03-14 22:20:08 +05:00
parent 468ddba909
commit 18840fc224
9 changed files with 51 additions and 6 deletions

View file

@ -0,0 +1,9 @@
using SurveyLib.Core.Models;
namespace SurveyLib.Core.Repositories;
public interface IAnswerRepository : IGenericRepository<Answer>
{
Task<IEnumerable<Answer>> GetByAttemptIdAsync(int attemptId);
Task<IEnumerable<Answer>> GetByQuestionIdAsync(int questionId);
}

View file

@ -0,0 +1,8 @@
using SurveyLib.Core.Models;
namespace SurveyLib.Core.Repositories;
public interface ICompletionRepository : IGenericRepository<Completion>
{
Task<IEnumerable<Completion>> GetBySurveyIdAsync(int surveyId);
}

View file

@ -7,4 +7,4 @@ public interface IGenericRepository<T> where T : class
Task AddAsync(T entity);
Task UpdateAsync(T entity);
Task DeleteAsync(T entity);
}
}

View file

@ -0,0 +1,9 @@
using SurveyLib.Core.Models;
namespace SurveyLib.Core.Repositories;
public interface IQuestionRepository : IGenericRepository<QuestionBase>
{
Task<QuestionBase?> GetWithAnswersAsync(int questionId);
Task<IEnumerable<QuestionBase>> GetBySurveyIdAsync(int surveyId);
}

View file

@ -0,0 +1,10 @@
using SurveyLib.Core.Models;
namespace SurveyLib.Core.Repositories;
public interface ISurveyRepository : IGenericRepository<Survey>
{
Task<Survey?> GetWithQuestionsAsync(int surveyId);
Task<Survey?> GetWithCompletionsAsync(int surveyId);
Task<Survey?> FindByTitleAsync(string title);
}