public void HistoryTest()
    {
        Console.WriteLine(new string('-', 50));
        Console.WriteLine("                  Calls history");
        Console.WriteLine(new string('-', 50));
        Console.WriteLine();
        GSM phone = new GSM();
        phone.AddHistory(DateTime.Now, "0891234567", 10);
        phone.AddHistory(DateTime.Now, "0883456789", 47.99);
        phone.AddHistory(DateTime.Now, "0872345678", 89.01);
        phone.PrintCalls();

        Console.WriteLine();
        Console.WriteLine("Assuming the price per minute is 0.37! Calculate the total price of the calls:");
        Console.WriteLine(new string('-', 77));
        phone.CalculateTotalPrice();
        Console.WriteLine();
        Console.WriteLine();

        Console.WriteLine("Delete longest call from the history and calculate the total price again:");
        Console.WriteLine(new string('-', 74));
        phone.DeleteHistory(89.01);
        phone.CalculateTotalPrice();
        Console.WriteLine();
        Console.WriteLine();

        Console.WriteLine(new string('-', 50));
        Console.WriteLine("           Calls history after delete");
        Console.WriteLine(new string('-', 50));
        Console.WriteLine();
        phone.ClearHistory();
        phone.CalculateTotalPrice();
    }
    public static void Main()
    {
        //Creating the instance of GSM.
        Battery litiumBattery = new Battery("Normal", 123, 20.5, BatteryType.LiIon);
        Display big = new Display(8.4, 3000);
        GSM myPhone = new GSM("W595", "Sony - Erikson", 678, "Cecilia", litiumBattery, big);

        //Adding few calls.
        Call[] calls = new Call[4];
        calls[0] = new Call(DateTime.Today, DateTime.Now, "0888123456", 123);
        calls[1] = new Call(DateTime.Today, DateTime.Now, "0877123456", 45);
        calls[2] = new Call(DateTime.Today, DateTime.Now, "0899123456", 540);
        calls[3] = new Call(DateTime.Today, DateTime.Now, "0789123456", 18);
        for (int i = 0; i < calls.Length; i++)
        {
            myPhone.AddHistory(calls[i]);
        }

        //Display calls information.
        foreach (var item in myPhone.callHistory)
        {
            Console.WriteLine("Date and time: {0}, Dialed phone: {1}, Duration: {2} seconds", item.Time, item.DialedPhone, item.Duration);
            Console.WriteLine();
        }

        //Print total price.
        Console.WriteLine();
        Console.WriteLine("The total price of the calls is {0:f2}", myPhone.CalculateTotalPrice(0.37));

        //Remove longest call and calculate price again.
        int longestCallIndex = 0;
        double longestDuration = 0.0;
        for (int i = 0; i < myPhone.callHistory.Count; i++)
        {
            if (myPhone.callHistory[i].Duration > longestDuration)
            {
                longestCallIndex = i;
                longestDuration = myPhone.callHistory[i].Duration;
            }
        }
        myPhone.DeleteHistory(longestCallIndex);
        Console.WriteLine();
        Console.WriteLine("The total price of the calls is {0:f2}", myPhone.CalculateTotalPrice(0.37));

        //Clear history and print it.
        myPhone.ClearHistory();
        Console.WriteLine();
        if (myPhone.callHistory.Count > 0)
        {
            foreach (var item in myPhone.callHistory)
            {
                Console.WriteLine("Date and time: {0}, Dialed phone: {1}, Duration: {2} seconds", item.Time, item.DialedPhone, item.Duration);
                Console.WriteLine();
            }
        }
        else
        {
            Console.WriteLine("Empty");
        }

    }
    public static void Main()
    {
        //Creating the instance of GSM.
        Battery litiumBattery = new Battery("Normal", 123, 20.5, BatteryType.LiIon);
        Display big           = new Display(8.4, 3000);
        GSM     myPhone       = new GSM("W595", "Sony - Erikson", 678, "Cecilia", litiumBattery, big);

        //Adding few calls.
        Call[] calls = new Call[4];
        calls[0] = new Call(DateTime.Today, DateTime.Now, "0888123456", 123);
        calls[1] = new Call(DateTime.Today, DateTime.Now, "0877123456", 45);
        calls[2] = new Call(DateTime.Today, DateTime.Now, "0899123456", 540);
        calls[3] = new Call(DateTime.Today, DateTime.Now, "0789123456", 18);
        for (int i = 0; i < calls.Length; i++)
        {
            myPhone.AddHistory(calls[i]);
        }

        //Display calls information.
        foreach (var item in myPhone.callHistory)
        {
            Console.WriteLine("Date and time: {0}, Dialed phone: {1}, Duration: {2} seconds", item.Time, item.DialedPhone, item.Duration);
            Console.WriteLine();
        }

        //Print total price.
        Console.WriteLine();
        Console.WriteLine("The total price of the calls is {0:f2}", myPhone.CalculateTotalPrice(0.37));

        //Remove longest call and calculate price again.
        int    longestCallIndex = 0;
        double longestDuration  = 0.0;

        for (int i = 0; i < myPhone.callHistory.Count; i++)
        {
            if (myPhone.callHistory[i].Duration > longestDuration)
            {
                longestCallIndex = i;
                longestDuration  = myPhone.callHistory[i].Duration;
            }
        }
        myPhone.DeleteHistory(longestCallIndex);
        Console.WriteLine();
        Console.WriteLine("The total price of the calls is {0:f2}", myPhone.CalculateTotalPrice(0.37));

        //Clear history and print it.
        myPhone.ClearHistory();
        Console.WriteLine();
        if (myPhone.callHistory.Count > 0)
        {
            foreach (var item in myPhone.callHistory)
            {
                Console.WriteLine("Date and time: {0}, Dialed phone: {1}, Duration: {2} seconds", item.Time, item.DialedPhone, item.Duration);
                Console.WriteLine();
            }
        }
        else
        {
            Console.WriteLine("Empty");
        }
    }