Загрузка данных


using static System.Console;
namespace ConsoleApp21
{
    abstract class Human
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public DateTime BDate { get; set; }
        public override string ToString()
        {
            return $"\nLastNane: {LastName}" +
                   $"FirstName: {FirstName}" +
                   $"BDate{BDate.ToLongTimeString()}";
        }
    }
    abstract class Employee : Human 
    {
        public string Position { get; set; }
        public int Salary { get; set; }

        public override string ToString()
        {
            return base.ToString()+$"Position: {Position} Salary: {Salary} ";
        }
    }
    interface IWorker
    {
        bool IsWorking { get; }
        string Work();
    }
    interface IManager
    {
        List<IWorker> Worker { get; set; }
        void Organize();
        void MakeBuget();
        void Control();
    }
    class Director : Employee, IManager
    {
        public List<IWorker> Worker { get; set; }
        public void MakeBuget() { WriteLine($"Make org buget"); }
        public void Control() { WriteLine($"Control working"); }
        public void Organize() { WriteLine($"Organize work");  }
    }
    class Seller : Employee, IWorker
    {
        bool isWorking = true;
        public bool IsWorking { get { return isWorking; } }
        public string Work()
        {
            return "Sale of product";
        }
    }

    class Cashier : Employee, IWorker
    {
        bool isWorking = true;
        public bool IsWorking { get { return isWorking; } }
        public string Work()
        {
            return "Take money";
        }
    }
    class StoreKeeper : Employee, IWorker
    {
        bool isWorking = true;
        public bool IsWorking { get { return isWorking; } }
        public string Work()
        {
            return "keep of product";
        }
    }
    internal class Program
    {
        static void Main(string[] args)
        {
            Director director = new Director 
            {
                LastName="Pupkin",
                FirstName="Fedor",
                BDate=new DateTime(1990,12,10),
                Position ="Director",
                Salary=200000
            };
            IWorker seller = new Seller
            {
                LastName = "Petrov",
                FirstName = "Ivan",
                BDate = new DateTime(2000, 5, 14),
                Position ="Seller",
                Salary =80000
            };
            if (seller is Employee)
            {
                WriteLine($"Salary of Seller: {(seller as Employee).Salary}");
            }
            director.Worker= new List<IWorker> 
            {
                seller,
                new Cashier{LastName="Sidorov",FirstName="Artem",BDate= new DateTime(2005,4,5),
                Position="Cashier",Salary=60000},
                new StoreKeeper{LastName="Eryshin",FirstName="Stanislav",BDate= new DateTime(2002,6,23),
                Position="Keeper",Salary=70000 }
            };
            foreach (IWorker worker in director.Worker)
            {
                WriteLine(worker);
                if (worker.IsWorking)
                {
                    WriteLine(worker.Work());
                }
            }
        }
    }
}