|
|
|
@ -3,12 +3,56 @@ using WF_WebAdmin.Model;
|
|
|
|
|
|
|
|
|
|
namespace WF_WebAdmin.Service;
|
|
|
|
|
|
|
|
|
|
public class QuizServiceStub: IQuizServiceJson
|
|
|
|
|
public class QuizServiceStub: IQuizService
|
|
|
|
|
{
|
|
|
|
|
private readonly string _jsonFilePath =
|
|
|
|
|
Path.Combine(Environment.CurrentDirectory, "wwwroot", "fake_data_quiz.json");
|
|
|
|
|
private readonly string _jsonFilePath = Path.Combine(Environment.CurrentDirectory, "wwwroot", "fake_data_quiz.json");
|
|
|
|
|
|
|
|
|
|
public async Task<List<Quiz>> getQuizzesJson()
|
|
|
|
|
public async Task saveQuizJson(List<Quiz> quizzes)
|
|
|
|
|
{
|
|
|
|
|
var json = JsonSerializer.Serialize(quizzes, new JsonSerializerOptions { WriteIndented = true });
|
|
|
|
|
await File.WriteAllTextAsync(_jsonFilePath, json);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task addQuiz(Quiz quiz)
|
|
|
|
|
{
|
|
|
|
|
throw new NotImplementedException();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async Task updateQuiz(Quiz quiz)
|
|
|
|
|
{
|
|
|
|
|
var data = await getQuizzes();
|
|
|
|
|
var existingQuiz = data.FirstOrDefault(q => q.Id == quiz.Id);
|
|
|
|
|
if (existingQuiz != null)
|
|
|
|
|
{
|
|
|
|
|
existingQuiz.Question = quiz.Question;
|
|
|
|
|
existingQuiz.AnswerA = quiz.AnswerA;
|
|
|
|
|
existingQuiz.AnswerB = quiz.AnswerB;
|
|
|
|
|
existingQuiz.AnswerC = quiz.AnswerC;
|
|
|
|
|
existingQuiz.AnswerD = quiz.AnswerD;
|
|
|
|
|
existingQuiz.CAnswer = quiz.CAnswer;
|
|
|
|
|
existingQuiz.IsValid = quiz.IsValid;
|
|
|
|
|
existingQuiz.UserProposition = quiz.UserProposition;
|
|
|
|
|
await saveQuizJson(data);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async Task removeQuiz(int id)
|
|
|
|
|
{
|
|
|
|
|
var data = await getQuizzes();
|
|
|
|
|
var quiz = data.FirstOrDefault(q => q.Id == id);
|
|
|
|
|
if (quiz != null)
|
|
|
|
|
{
|
|
|
|
|
data.Remove(quiz);
|
|
|
|
|
await saveQuizJson(data);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task validateQuiz(int id)
|
|
|
|
|
{
|
|
|
|
|
throw new NotImplementedException();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async Task<List<Quiz>> getQuizzes()
|
|
|
|
|
{
|
|
|
|
|
if (!File.Exists(_jsonFilePath))
|
|
|
|
|
{
|
|
|
|
@ -20,44 +64,36 @@ public class QuizServiceStub: IQuizServiceJson
|
|
|
|
|
return JsonSerializer.Deserialize<List<Quiz>>(json) ?? new List<Quiz>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async Task<List<Quiz>> getQuizzesToValidateJson()
|
|
|
|
|
public async Task<List<Quiz>> getQuizzesToValidate()
|
|
|
|
|
{
|
|
|
|
|
var quizzes = await getQuizzesJson();
|
|
|
|
|
return quizzes.Where(quiz => quiz.IsValid == false).ToList();;
|
|
|
|
|
var quizzes = await getQuizzes();
|
|
|
|
|
return quizzes.Where(quiz => quiz.IsValid == false).ToList();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async Task removeQuizJson(int id)
|
|
|
|
|
public async Task<Quiz> getQuiz(int id)
|
|
|
|
|
{
|
|
|
|
|
var data = await getQuizzesJson();
|
|
|
|
|
var quiz = data.FirstOrDefault(q => q.Id == id);
|
|
|
|
|
if (quiz != null)
|
|
|
|
|
var data = await getQuizzes();
|
|
|
|
|
var q = data.FirstOrDefault(p => p.Id == id);
|
|
|
|
|
if (q != null)
|
|
|
|
|
{
|
|
|
|
|
data.Remove(quiz);
|
|
|
|
|
await saveQuizJson(data);
|
|
|
|
|
return q;
|
|
|
|
|
}
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async Task updateQuizJson(Quiz quiz)
|
|
|
|
|
public async Task<List<Quiz>> getSommeQuiz(int nb, int page)
|
|
|
|
|
{
|
|
|
|
|
var data = await getQuizzesJson();
|
|
|
|
|
var existingQuiz = data.FirstOrDefault(q => q.Id == quiz.Id);
|
|
|
|
|
if (existingQuiz != null)
|
|
|
|
|
var data = await getQuizzes();
|
|
|
|
|
if ((page - 1) * nb + nb > data.Count())
|
|
|
|
|
{
|
|
|
|
|
existingQuiz.Question = quiz.Question;
|
|
|
|
|
existingQuiz.AnswerA = quiz.AnswerA;
|
|
|
|
|
existingQuiz.AnswerB = quiz.AnswerB;
|
|
|
|
|
existingQuiz.AnswerC = quiz.AnswerC;
|
|
|
|
|
existingQuiz.AnswerD = quiz.AnswerD;
|
|
|
|
|
existingQuiz.CAnswer = quiz.CAnswer;
|
|
|
|
|
existingQuiz.IsValid = quiz.IsValid;
|
|
|
|
|
existingQuiz.UserProposition = quiz.UserProposition;
|
|
|
|
|
await saveQuizJson(data);
|
|
|
|
|
return data.GetRange(data.Count() - nb, nb);
|
|
|
|
|
}
|
|
|
|
|
return data.GetRange((page - 1) * nb, nb);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async Task saveQuizJson(List<Quiz> quizzes)
|
|
|
|
|
public async Task<int> getNbQuiz()
|
|
|
|
|
{
|
|
|
|
|
var json = JsonSerializer.Serialize(quizzes, new JsonSerializerOptions { WriteIndented = true });
|
|
|
|
|
await File.WriteAllTextAsync(_jsonFilePath, json);
|
|
|
|
|
var data = await getQuizzes();
|
|
|
|
|
return data.Count;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|