Skip to content

Commit

Permalink
[Add] Implementation of constructor without params
Browse files Browse the repository at this point in the history
  • Loading branch information
natasakasikovic committed Mar 30, 2024
1 parent c74ec38 commit fd0b6f5
Showing 1 changed file with 37 additions and 9 deletions.
46 changes: 37 additions & 9 deletions LangLang/Core/Model/Tutor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,55 @@
using System.Linq;
using System.Text;
using System.Data;
using System.Reflection;

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

private DateTime _employmentDate;

private Profile _profile;

public Dictionary<string, LanguageLevel> LanguageSkills
{
get { return _languageSkills; }
set { _languageSkills = value; }
}
public DateTime EmploymentDate
{
get { return _employmentDate; }
set { _employmentDate = value; }
}
public Profile Profile
{
get { return _profile; }
private set { _profile = value; }
}

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;
}

public Tutor()
{
_languageSkills = new Dictionary<string, LanguageLevel>();
_employmentDate = DateTime.MinValue;
_profile = new();
}

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]);
DateTime employmentDate;

if (!DateTime.TryParseExact(values[9], "yyyy-MM-dd", null, System.Globalization.DateTimeStyles.None, out 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++)
{
Expand Down Expand Up @@ -59,16 +83,20 @@ public string[] ToCSV()
return csvValues;
}

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



/*
public List<Course> GetCourses(ref Dictionary<int, Course> courses)
{
Expand Down

0 comments on commit fd0b6f5

Please sign in to comment.