completed SurveyRepository.cs

This commit is contained in:
Вячеслав 2025-03-14 23:07:06 +05:00
parent 7d06084dfb
commit 960a6ce191
6 changed files with 27 additions and 21 deletions

View file

@ -1,8 +1,10 @@
using SurveyLib.Core.Models;
namespace SurveyLib.Core.Repositories; namespace SurveyLib.Core.Repositories;
public interface IGenericRepository<T> where T : class public interface IGenericRepository<T> where T : class
{ {
Task<T>? GetByIdAsync(int id); Task<T?> GetByIdAsync(int id);
Task<IEnumerable<T>> GetAllAsync(); Task<IEnumerable<T>> GetAllAsync();
Task AddAsync(T entity); Task AddAsync(T entity);
Task UpdateAsync(T entity); Task UpdateAsync(T entity);

View file

@ -6,5 +6,5 @@ public interface ISurveyRepository : IGenericRepository<Survey>
{ {
Task<Survey?> GetWithQuestionsAsync(int surveyId); Task<Survey?> GetWithQuestionsAsync(int surveyId);
Task<Survey?> GetWithCompletionsAsync(int surveyId); Task<Survey?> GetWithCompletionsAsync(int surveyId);
Task<Survey?> FindByTitleAsync(string title); Task<IEnumerable<Survey>> FindByTitleAsync(string title);
} }

View file

@ -14,7 +14,7 @@ public class AnswerRepository : IAnswerRepository
_context = context; _context = context;
} }
public Task<Answer>? GetByIdAsync(int id) public Task<Answer?> GetByIdAsync(int id)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }

View file

@ -13,7 +13,7 @@ public class CompletionRepository : ICompletionRepository
_context = context; _context = context;
} }
public Task<Completion>? GetByIdAsync(int id) public Task<Completion?> GetByIdAsync(int id)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }

View file

@ -13,7 +13,7 @@ public class QuestionRepository : IQuestionRepository
_context = context; _context = context;
} }
public Task<QuestionBase>? GetByIdAsync(int id) public Task<QuestionBase?> GetByIdAsync(int id)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }

View file

@ -1,3 +1,4 @@
using Microsoft.EntityFrameworkCore;
using SurveyLib.Core.Models; using SurveyLib.Core.Models;
using SurveyLib.Core.Repositories; using SurveyLib.Core.Repositories;
using SurveyLib.Infrastructure.EFCore.Data; using SurveyLib.Infrastructure.EFCore.Data;
@ -13,43 +14,46 @@ public class SurveyRepository : ISurveyRepository
_context = context; _context = context;
} }
public Task<Survey>? GetByIdAsync(int id) public async Task<Survey?> GetByIdAsync(int id)
{ {
throw new NotImplementedException(); return await _context.Surveys.FirstOrDefaultAsync(s => s.Id == id);
} }
public Task<IEnumerable<Survey>> GetAllAsync() public async Task<IEnumerable<Survey>> GetAllAsync()
{ {
throw new NotImplementedException(); return await _context.Surveys.ToListAsync();
} }
public Task AddAsync(Survey entity) public async Task AddAsync(Survey entity)
{ {
throw new NotImplementedException(); await _context.Surveys.AddAsync(entity);
await _context.SaveChangesAsync();
} }
public Task UpdateAsync(Survey entity) public async Task UpdateAsync(Survey entity)
{ {
throw new NotImplementedException(); _context.Surveys.Update(entity);
await _context.SaveChangesAsync();
} }
public Task DeleteAsync(Survey entity) public async Task DeleteAsync(Survey entity)
{ {
throw new NotImplementedException(); _context.Surveys.Remove(entity);
await _context.SaveChangesAsync();
} }
public Task<Survey?> GetWithQuestionsAsync(int surveyId) public async Task<Survey?> GetWithQuestionsAsync(int surveyId)
{ {
throw new NotImplementedException(); return await _context.Surveys.Include(survey => survey.Questions).FirstOrDefaultAsync(s => s.Id == surveyId);
} }
public Task<Survey?> GetWithCompletionsAsync(int surveyId) public async Task<Survey?> GetWithCompletionsAsync(int surveyId)
{ {
throw new NotImplementedException(); return await _context.Surveys.Include(survey => survey.Completions).FirstOrDefaultAsync(s => s.Id == surveyId);
} }
public Task<Survey?> FindByTitleAsync(string title) public async Task<IEnumerable<Survey>> FindByTitleAsync(string title)
{ {
throw new NotImplementedException(); return await _context.Surveys.Where(s => s.Title.ToLower().Contains(title.ToLower())).ToListAsync();
} }
} }