using System;

class Book : Item
{
    private String author;
    private String title;
    private String publisher;
    private int pages;
    private int year;

    private static double price = 9;
    private bool returnSrok = false;

    static Book()
    {
        price = 10;
    }

    public Book()
    {

    }


    public Book(String author, String title, String publisher, int pages, int year, long invNumber, bool taken) : base (invNumber, taken)
    {
        this.author = author;
        this.title = title;
        this.publisher = publisher;
        this.pages = pages;
        this.year = year;
    }

    public Book(String author, String title)
    {
        this.author = author;
        this.title = title;
    }

    public void SetBook(String author, String title, String publisher, int pages, int year)
    {
        this.author = author;
        this.title = title;
        this.publisher = publisher;
        this.pages = pages;
        this.year = year;
    }

    public static void SetPrice(double price)
    {
        Book.price = price;
    }


    public override void Show()
    {
        Console.WriteLine("\nКнига:\n Автор: {0}\n Название: {1}\n Год издания: {2}\n {3} стр.\n Стоимость аренды: {4}", author, title, year, pages, Book.price);
        base.Show();
    }


    public double PriceBook(int s)
    {
        double cost = s * price;
        return cost;
    }

    public override void Return()
    {
        taken = ReturnSrok;
    }

    public delegate void ProcessBookDelegate(Book book);

    public void ProcessPaperbackBooks(ProcessBookDelegate processBook)
    {
        if (ReturnSrok)
        processBook(this);
   }

    public static event ProcessBookDelegate RetSrok;

    public bool ReturnSrok
    {
        get
        {
            return returnSrok;
        }
        set 
        {
            returnSrok = value;
            if (ReturnSrok == true)
                RetSrok(this);
        }
    }

    public override string ToString()
    {
        string str = this.title + ", " + this.author + " Инв. номер " + this.invNumber;
        return str;
    }
}
