namespace AddisonWesley.Michaelis.EssentialCSharp.Chapter06.Listing06_19
{
    using System;
    using System.IO;

    public class Program
    {
        public static void Main()
        {
            Employee employee1 =
                new Employee();
            Employee employee2 =
                new Employee();

            // Wywołanie settera właściwości FirstName.
            employee1.FirstName = "Inigo";

            // Wywołanie gettera właściwości FirstName.
            System.Console.WriteLine(employee1.FirstName);

            // Przypisanie wartości do automatycznie zaimplementowanej właściwości.
            employee2.Title = "Maniak komputerowy";
            employee1.Manager = employee2;

            // Wyświetlanie stanowiska menedżera osoby reprezentowanej przez obiekt employee1.
            System.Console.WriteLine(employee1.Manager.Title);
        }

    }

    class Employee
    {
        // Właściwość FirstName.
        public string FirstName
        {
            get
            {
                return _FirstName;
            }
            set
            {
                _FirstName = value;
            }
        }
        private string _FirstName;

        // Właściwość LastName.
        public string LastName
        {
            get => _FirstName;
            set => _FirstName = value;
        }
        private string _LastName;

        // Właściwość Title.
        public string Title { get; set; }

        // Właściwość Manager.
        public Employee Manager { get; set; }

        public string Salary { get; set; } = "Za niskie";

    }
}
