Разработать объектную модель

Есть файл, в котором идет неизвестное кол-во строк, в которых задаются данные людей в порядке Id;LastName;FirstName;BirthDate. После пустой строки идет описание отношений между людьми. Возможные типы отношений: spouse - супруг/супруга, parent - родитель, sibling - брат/сестра. Формат строки с отшениями: по обе стороны от оператор "<->" задаются люди, которые состоят в отношениях, после знака равенства идет тип отношений, в которых эти люди состоят.

Само задание:

  1. Разработать объектную модель по описанию выше
  2. Разработать метод, чтобы для каждого человека можно было узнать в каком типе отношений он состоит с другим человеком. Например, у файла ниже для людей с Id 1 и 2 должен вернуться тип "sibling", хотя этого не было указано в файле явно.

Пример файла:

1;Иванов;Иван;01.01.1990
2;Иванова;Мария;01.05.1998
3;Иванов;Петр;01.01.1980
4;Иванова;Ольга;01.01.1971
5;Петрова;Маргарита;01.01.1972
6;Иванов;Олег;02.03.1995

3<->4=spouse
3<->1=parent
4<->1=parent
5<->3=sibling
6<->4=sibling

Помогите, пожалуйста с первым пунктом.

Я попробовал вот так, но второе задание с такими классами не решишь:

    public class Human
    {
        public int Id { get; set; }
        public string LastName { get; set; }
        public string FirstName { get; set; }
        public string BirthDate { get; set; }
    }

    public class Spouse : Human
    {
        public string Description { get; protected set; }

        public Spouse()
        {
            this.Description = "spouse";
        }
    }

    public class Parent : Spouse
    {
        public Parent()
        {
            this.Description = "parent";
        }
    }

    public class Sibling : Parent
    {
        public Sibling()
        {
            this.Description = "sibling";
        }
    }

Ответы (0 шт):