diff --git a/SurveyLib.Core/Models/Completion.cs b/SurveyLib.Core/Models/Completion.cs index 0ba6cf3..651440d 100644 --- a/SurveyLib.Core/Models/Completion.cs +++ b/SurveyLib.Core/Models/Completion.cs @@ -4,7 +4,9 @@ public class Completion { public int Id { get; set; } public int SurveyId { get; set; } - public DateTime FinishedAt { get; set; } + public DateTime FinishedAt { get; set; } = DateTime.UtcNow; + + public int? CompletedBy { get; set; } public Survey Survey { get; set; } public ICollection Answers { get; set; } diff --git a/SurveyLib.Core/Repositories/IAnswerRepository.cs b/SurveyLib.Core/Repositories/IAnswerRepository.cs index 59d2213..0906f21 100644 --- a/SurveyLib.Core/Repositories/IAnswerRepository.cs +++ b/SurveyLib.Core/Repositories/IAnswerRepository.cs @@ -5,4 +5,6 @@ namespace SurveyLib.Core.Repositories; public interface IAnswerRepository : IGenericRepository { Task DeleteAsync(int questionId, int completionId); + Task> GetAnswersByCompletionIdAsync(int completionId); + Task> GetAnswersByQuestionIdAsync(int questionId); } \ No newline at end of file diff --git a/SurveyLib.Core/Repositories/ICompletionRepository.cs b/SurveyLib.Core/Repositories/ICompletionRepository.cs index 9b41e97..b8cffac 100644 --- a/SurveyLib.Core/Repositories/ICompletionRepository.cs +++ b/SurveyLib.Core/Repositories/ICompletionRepository.cs @@ -4,5 +4,5 @@ namespace SurveyLib.Core.Repositories; public interface ICompletionRepository : IGenericRepository { - + Task> GetCompletionsBySurveyIdAsync(int surveyId); } \ No newline at end of file diff --git a/SurveyLib.Core/Services/IAnswerService.cs b/SurveyLib.Core/Services/IAnswerService.cs index d2122dc..2eb866d 100644 --- a/SurveyLib.Core/Services/IAnswerService.cs +++ b/SurveyLib.Core/Services/IAnswerService.cs @@ -4,9 +4,9 @@ namespace SurveyLib.Core.Services; public interface IAnswerService { - Task AddAnswerAsync(Answer answer); - Task UpdateAnswerAsync(Answer answer); - Task DeleteAnswerAsync(int id); + Task AddAnswerAsync(Answer answer); + Task UpdateAnswerAsync(Answer answer); + Task DeleteAnswerAsync(int id); Task> GetAnswersByCompletionIdAsync(int completionId); Task> GetAnswersByQuestionIdAsync(int questionId); } \ No newline at end of file diff --git a/SurveyLib.Core/Services/ICompletionService.cs b/SurveyLib.Core/Services/ICompletionService.cs index 3a9430d..b6d4bab 100644 --- a/SurveyLib.Core/Services/ICompletionService.cs +++ b/SurveyLib.Core/Services/ICompletionService.cs @@ -4,8 +4,8 @@ namespace SurveyLib.Core.Services; public interface ICompletionService { - Task AddCompletionAsync(Completion completion); - Task UpdateCompletionAsync(Completion completion); - Task DeleteCompletionAsync(int id); + Task AddCompletionAsync(Completion completion); + Task UpdateCompletionAsync(Completion completion); + Task DeleteCompletionAsync(int id); Task> GetCompletionsBySurveyIdAsync(int surveyId); } \ No newline at end of file diff --git a/SurveyLib.Infrastructure.EFCore/Repositories/AnswerRepository.cs b/SurveyLib.Infrastructure.EFCore/Repositories/AnswerRepository.cs index 4a84d49..88fbe40 100644 --- a/SurveyLib.Infrastructure.EFCore/Repositories/AnswerRepository.cs +++ b/SurveyLib.Infrastructure.EFCore/Repositories/AnswerRepository.cs @@ -47,4 +47,14 @@ public class AnswerRepository : IAnswerRepository .ExecuteDeleteAsync(); await _context.SaveChangesAsync(); } + + public async Task> GetAnswersByCompletionIdAsync(int completionId) + { + return await _context.Answers.Where(a => a.CompletionId == completionId).ToListAsync(); + } + + public async Task> GetAnswersByQuestionIdAsync(int questionId) + { + return await _context.Answers.Where(a => a.QuestionId == questionId).ToListAsync(); + } } \ No newline at end of file diff --git a/SurveyLib.Infrastructure.EFCore/Repositories/CompletionRepository.cs b/SurveyLib.Infrastructure.EFCore/Repositories/CompletionRepository.cs index 5082e34..bc1c39c 100644 --- a/SurveyLib.Infrastructure.EFCore/Repositories/CompletionRepository.cs +++ b/SurveyLib.Infrastructure.EFCore/Repositories/CompletionRepository.cs @@ -41,4 +41,9 @@ public class CompletionRepository : ICompletionRepository await _context.Completions.Where(c => c.Id == id).ExecuteDeleteAsync(); await _context.SaveChangesAsync(); } + + public async Task> GetCompletionsBySurveyIdAsync(int surveyId) + { + return await _context.Completions.Where(c => c.SurveyId == surveyId).ToListAsync(); + } } \ No newline at end of file