Skip to content

Commit

Permalink
[Update] Implementation of Tutor class
Browse files Browse the repository at this point in the history
  • Loading branch information
natasakasikovic committed Mar 29, 2024
1 parent ea196b9 commit c74ec38
Showing 1 changed file with 57 additions and 25 deletions.
82 changes: 57 additions & 25 deletions LangLang/Core/Model/Tutor.cs
Original file line number Diff line number Diff line change
@@ -1,43 +1,74 @@
using System;
using LangLang.Core.Repository.Serialization;
using LangLang.Core.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
using LangLang.Core.Model;
using System.Data;

namespace LangLang.Core.Model
{
class Tutor
public class Tutor : ISerializable
{
// Profile attribute of type Profile
private Profile _profile { get; set; }
private Dictionary<string, LanguageLevel> _languageSkills { get; set; }
private DateTime _employmentDate { get; set; }

// Constructor
public Tutor()
{
// Initialize empty profile and language skills
_profile = new Profile();
_profile.Role = UserType.Tutor;
_languageSkills = new Dictionary<string, LanguageLevel>();
}
public Tutor(Profile profile, Dictionary<string, LanguageLevel> languageSkills)
{
_profile = profile;
public Tutor(int id, string name, string lastName, UserGender gender, DateTime dateOfBirth, string phoneNumber, string email, string password, UserType role, DateTime employmentDate, Dictionary<string, LanguageLevel> languageSkills) {
_profile = new Profile(id, name, lastName, gender, dateOfBirth, phoneNumber, email, password, role);
_employmentDate = employmentDate;
_languageSkills = languageSkills;
}
}

//Getters and setters
public Profile Profile
public void FromCSV(string[] values)
{
get { return _profile; }
private set { _profile = value; }
_profile = new Profile(values[0], values[1], values[2], values[3], values[4], values[5], values[6], values[7], values[8]);
DateTime employmentDate;

if (!DateTime.TryParseExact(values[9], "yyyy-MM-dd", null, System.Globalization.DateTimeStyles.None, out employmentDate))
{
throw new FormatException("Date is not in the correct format.");
}
_employmentDate = employmentDate;

for (int i = 10; i < values.Length; i++)
{
string[] languageSkill = values[i].Split(',');

if (languageSkill.Length != 2)
{
throw new FormatException("Language and skill pair is not in the correct format.");
}
LanguageLevel level;
if (Enum.TryParse(languageSkill[1], out level))
{
_languageSkills.Add(languageSkill[0], level);
}
}
}
public Dictionary<string, LanguageLevel> LanguageSkills

public string[] ToCSV()
{
get { return _languageSkills; }
private set { _languageSkills = value; }
string[] csvValues =
{
_profile.ToString(),
_employmentDate.ToString("yyyy-MM-dd"),
DictToCSV(_languageSkills)
};

return csvValues;
}

public string DictToCSV(Dictionary<string, LanguageLevel> skills){
StringBuilder sb = new StringBuilder();
var length = skills.Count();
foreach (var skill in skills){
sb.Append(skill.Key).Append(",").Append(skill.Value);
if (--length>0) sb.Append("|");
}
return sb.ToString();
}

/*
public List<Course> GetCourses(ref Dictionary<int, Course> courses)
{
Expand All @@ -63,3 +94,4 @@ public List<ExamSlot> GetExamSlots(ref Dictionary<int, ExamSlot> examSlots)
//add searchCourses and searchExamSlots
}
}

0 comments on commit c74ec38

Please sign in to comment.