diff --git a/LangLang/Core/Model/DAO/TutorDAO.cs b/LangLang/Core/Model/DAO/TutorDAO.cs index df4a3438..e042f56b 100644 --- a/LangLang/Core/Model/DAO/TutorDAO.cs +++ b/LangLang/Core/Model/DAO/TutorDAO.cs @@ -8,7 +8,7 @@ namespace LangLang.Core.DAO { public class TutorDAO : Subject { - private readonly List _tutors; + private readonly Dictionary _tutors; private readonly Repository _repository; public TutorDAO() @@ -22,21 +22,21 @@ private int GenerateId() return _tutors.Count + 1; } - private Tutor Get(int id) + private Tutor? Get(int id) { - return _tutors.Find(t => t.Profile.Id == id); + return _tutors[id]; } public Tutor Add(Tutor tutor) { tutor.Profile.Id = GenerateId(); - _tutors.Add(tutor); + _tutors.Add(tutor.Profile.Id, tutor); _repository.Save(_tutors); NotifyObservers(); return tutor; } - public Tutor Update(Tutor tutor) + public Tutor? Update(Tutor tutor) { Tutor oldTutor = Get(tutor.Profile.Id); if (oldTutor == null) { return null; } @@ -55,8 +55,21 @@ public Tutor Update(Tutor tutor) return oldTutor; } - // TODO: implement GetAllTutors and Remove method + public Dictionary GetAllTutors() + { + return _tutors; + } + + public Tutor? Remove(int id) + { + Tutor tutor = Get(id); + if (tutor == null) return null; + _tutors.Remove(tutor.Profile.Id); + _repository.Save(_tutors); + NotifyObservers(); + return tutor; + } } } diff --git a/LangLang/Core/Model/Tutor.cs b/LangLang/Core/Model/Tutor.cs index c47a8741..e99aaa41 100644 --- a/LangLang/Core/Model/Tutor.cs +++ b/LangLang/Core/Model/Tutor.cs @@ -46,6 +46,11 @@ public Tutor() _profile = new(); } + public int Id + { + get { return Profile.Id; } + } + public void FromCSV(string[] values) { _profile = new Profile(values[0], values[1], values[2], values[3], values[4], values[5], values[6], values[7], values[8]);