deletions update

This commit is contained in:
Вячеслав 2025-05-20 15:59:55 +05:00
parent 6f8ef78577
commit 7bbcd07c39
10 changed files with 71 additions and 22 deletions

View file

@ -7,12 +7,14 @@ namespace SurveyLib.Infrastructure.EFCore.Data;
public class SurveyDbContext : DbContext
{
public DbSet<Survey> Surveys { get; set; }
public DbSet<QuestionBase> Questions { get; set; }
public DbSet<SingleAnswerQuestion> SingleAnswerQuestions { get; set; }
public DbSet<MultipleAnswerQuestion> MultipleAnswerQuestions { get; set; }
public DbSet<TextQuestion> TextQuestions { get; set; }
public DbSet<AnswerVariant> AnswerVariants { get; set; }
public DbSet<Completion> Completions { get; set; }
public DbSet<Answer> Answers { get; set; }

View file

@ -36,9 +36,15 @@ public class AnswerRepository : IAnswerRepository
await _context.SaveChangesAsync();
}
public async Task DeleteAsync(Answer entity)
public async Task DeleteAsync(int id)
{
_context.Answers.Remove(entity);
throw new NotImplementedException();
}
public async Task DeleteAsync(int questionId, int completionId)
{
await _context.Answers.Where(a => a.QuestionId == questionId && a.CompletionId == completionId)
.ExecuteDeleteAsync();
await _context.SaveChangesAsync();
}
}

View file

@ -0,0 +1,49 @@
using Microsoft.EntityFrameworkCore;
using SurveyLib.Core.Models;
using SurveyLib.Core.Repositories;
using SurveyLib.Infrastructure.EFCore.Data;
namespace SurveyLib.Infrastructure.EFCore.Repositories;
public class AnswerVariantsRepository : IAnswerVariantsRepository
{
private readonly SurveyDbContext _context;
public AnswerVariantsRepository(SurveyDbContext context)
{
_context = context;
}
public async Task<AnswerVariant?> GetByIdAsync(int id)
{
return await _context.AnswerVariants.FindAsync(id);
}
public async Task<IEnumerable<AnswerVariant>> GetAllAsync()
{
return await _context.AnswerVariants.ToListAsync();
}
public async Task AddAsync(AnswerVariant entity)
{
await _context.AnswerVariants.AddAsync(entity);
await _context.SaveChangesAsync();
}
public async Task UpdateAsync(AnswerVariant entity)
{
_context.AnswerVariants.Update(entity);
await _context.SaveChangesAsync();
}
public async Task DeleteAsync(int id)
{
await _context.AnswerVariants.Where(av => av.Id == id).ExecuteDeleteAsync();
await _context.SaveChangesAsync();
}
public async Task<IEnumerable<AnswerVariant>> GetAnswerVariantsByQuestionIdAsync(int questionId)
{
return await _context.AnswerVariants.Where(av => av.QuestionId == questionId).ToListAsync();
}
}

View file

@ -36,9 +36,9 @@ public class CompletionRepository : ICompletionRepository
await _context.SaveChangesAsync();
}
public async Task DeleteAsync(Completion entity)
public async Task DeleteAsync(int id)
{
_context.Completions.Remove(entity);
await _context.Completions.Where(c => c.Id == id).ExecuteDeleteAsync();
await _context.SaveChangesAsync();
}
}

View file

@ -36,9 +36,9 @@ public class QuestionRepository : IQuestionRepository
await _context.SaveChangesAsync();
}
public async Task DeleteAsync(QuestionBase entity)
public async Task DeleteAsync(int id)
{
_context.Questions.Remove(entity);
await _context.Questions.Where(q => q.Id == id).ExecuteDeleteAsync();
await _context.SaveChangesAsync();
}

View file

@ -36,9 +36,9 @@ public class SurveyRepository : ISurveyRepository
await _context.SaveChangesAsync();
}
public async Task DeleteAsync(Survey entity)
public async Task DeleteAsync(int id)
{
_context.Surveys.Remove(entity);
await _context.Surveys.Where(s => s.Id == id).ExecuteDeleteAsync();
await _context.SaveChangesAsync();
}