using System;
using System.Collections.Generic;
using System.Text;

namespace OOPModel
{
    class Program
    {
        static void Main(string[] args)
        {
            Konto k1 = new Konto();
            Console.WriteLine("Efter default constructor:");
            Console.WriteLine("Kontonr: {0}", k1.getKontonr());
            Console.WriteLine("Saldo  : {0}", k1.getSaldo());
            Console.WriteLine("Primo  : {0}", k1.getPrimoSaldo());
            Console.WriteLine("Dato   : {0}", k1.getDato());
            k1.setKontonr(2345);
            k1.setPrimoSaldo(230.25);
            Console.WriteLine("Efter indsættelse af kontonr og primosaldo:");
            Console.WriteLine("Kontonr: {0}", k1.getKontonr());
            Console.WriteLine("Saldo  : {0}", k1.getSaldo());
            Console.WriteLine("Primo  : {0}", k1.getPrimoSaldo());
            Console.WriteLine("Dato   : {0}", k1.getDato());
            k1.indsaet(20071105, "Beløb indsat", 125.50);
            Console.WriteLine("Efter indsættelse af 125,50:");
            Console.WriteLine("Kontonr: {0}", k1.getKontonr());
            Console.WriteLine("Saldo  : {0}", k1.getSaldo());
            Console.WriteLine("Primo  : {0}", k1.getPrimoSaldo());
            Console.WriteLine("Dato   : {0}", k1.getDato());
            k1.haev(20071106, "Beløb hævet", 100.25);
            Console.WriteLine("Efter hævning af 100,25:");
            Console.WriteLine("Kontonr: {0}", k1.getKontonr());
            Console.WriteLine("Saldo  : {0}", k1.getSaldo());
            Console.WriteLine("Primo  : {0}", k1.getPrimoSaldo());
            Console.WriteLine("Dato   : {0}", k1.getDato());

            Konto k2 = new Konto(1234, 100.0, 20071101);
            Console.WriteLine("Kontonr: {0}", k2.getKontonr());
            Console.WriteLine("Saldo  : {0}", k2.getPrimoSaldo());
            Console.WriteLine("Primo  : {0}", k1.getPrimoSaldo());
            Console.WriteLine("Dato   : {0}", k1.getDato());

            Transaktion t1 = new Transaktion();
            Console.WriteLine("Dato   : {0}", t1.getDato());
            Console.WriteLine("Tekst  : {0}", t1.getTekst());
            Console.WriteLine("Beløb  : {0}", t1.getBeloeb());
            t1.setDato(20071029);
            t1.setTekst("Dette er en test");
            t1.setBeloeb(125.75);
            Console.WriteLine("Dato   : {0}", t1.getDato());
            Console.WriteLine("Tekst  : {0}", t1.getTekst());
            Console.WriteLine("Beløb  : {0}", t1.getBeloeb());

            Transaktion[] t = new Transaktion[100];
            t = k1.getTransaktioner();
            Console.WriteLine("Udskrift af transaktioner:");
            Console.WriteLine("Kontonr: {0}", k1.getKontonr());
            Console.WriteLine("Primo  : {0}", k1.getPrimoSaldo());
            Console.WriteLine("Dato   : {0}", k1.getDato());
            foreach (Transaktion trans in t)
            {
                if (trans != null)
                {
                    Console.Write(" {0}  ", trans.getDato());
                    Console.Write(" {0}  ", trans.getTekst());
                    Console.WriteLine(" {0}  ", trans.getBeloeb());
                }
            }
            Console.WriteLine("Saldo  : {0}", k1.getSaldo());

            Kunde kunde1 = new Kunde(1, "Bjarne", "Dragebakken", 5250, "Odense SV", "66 17 02 50", "2908532345");
            Console.WriteLine();
            Console.WriteLine("Udskrift af kunde:");
            Console.WriteLine("Kundenr : {0}", kunde1.Kundenr);
            Console.WriteLine("Navn    : {0}", kunde1.Navn);
            Console.WriteLine("Adresse : {0}", kunde1.Adresse);
            Console.WriteLine("Postnr  : {0}", kunde1.Postnr);
            Console.WriteLine("Distrikt: {0}", kunde1.Distrikt);
            Console.WriteLine("Telefon : {0}", kunde1.Telefonnr);
            Console.WriteLine("CPRnr   : {0}", kunde1.CPRnr);

            kunde1.addKonto(k1);
            kunde1.addKonto(k2);
            Console.WriteLine();
            Console.WriteLine("Udskrift af kunde med konti:");
            Console.WriteLine("Kundenr : {0}", kunde1.Kundenr);
            Console.WriteLine("Navn    : {0}", kunde1.Navn);
            Console.WriteLine("Adresse : {0}", kunde1.Adresse);
            Console.WriteLine("Postnr  : {0}", kunde1.Postnr);
            Console.WriteLine("Distrikt: {0}", kunde1.Distrikt);
            Console.WriteLine("Telefon : {0}", kunde1.Telefonnr);
            Console.WriteLine("CPRnr   : {0}", kunde1.CPRnr);
            Konto[] k = kunde1.getKonti();
            foreach (Konto kto in k)
            {
                if (kto != null)
                {
                    Console.WriteLine("Kontonr: {0}", kto.getKontonr());
                    Console.WriteLine("Saldo  : {0}", kto.getSaldo());
                    Console.WriteLine("Primo  : {0}", kto.getPrimoSaldo());
                    Console.WriteLine("Dato   : {0}", kto.getDato());
                    Console.WriteLine();
                }
            }

            Console.WriteLine();
            Console.Write("Fortsæt - tryk RETUR");
            Console.ReadLine();

        }
    }
}
