static void Main(string[] args)
        {
            Console.OutputEncoding = System.Text.Encoding.UTF8;
            //Tässä määritellään asiakas-olio.
            Asiakas asiakas = new Asiakas("Amanda", 1000);

            //Tässä tulostetaan asiakkaan tiedot kutsumalla
            //TulostaTiedot()-metodi.
            asiakas.TulostaTiedot();

            //Tässä määritellään hopeaEtuAsiakas-olio.
            HopeaEtuAsiakas hopeaEtuAsiakas = new
                                              HopeaEtuAsiakas("Emanuel", 2000, 5430.85m);

            //Tässä tulostetaan hopeaEtuAsiakas-olion tiedot.
            hopeaEtuAsiakas.TulostaTiedot();

            //Tässä määritellään kultaEtuAsiakas-olio.
            KultaEtuAsiakas kultaEtuAsiakas = new
                                              KultaEtuAsiakas("Emiliano", 3000, 15430.85m);

            //Tässä tulostetaan kultaEtuAsiakas-olion tiedot.
            kultaEtuAsiakas.TulostaTiedot();
        }
예제 #2
0
        private void luoLaskuBtn_Click(object sender, EventArgs e)
        {
            bool voikoLuoda = true;
            //Luodaan asiakas ja laitetaan asiakkaalle tiedot
            Asiakas asiakas = new Asiakas();

            asiakas.Sukunimi = sukunimiCBox.Text;
            asiakas.Etunimi  = etunimiCBox.Text;
            asiakas          = handler.HaeAsiakasNimellä(asiakas);

            //Luodaan yritys ja haetaan sille tiedot
            Yritys yritys = new Yritys();

            yritys = handler.HaeYritys(id);


            DateTime dateAndTime = DateTime.Now;
            DateTime eräpäivä    = dateAndTime.AddDays(14);

            //Luodaan lasku ja laitetaan laskulle tiedot
            Lasku lasku = new Lasku();
            int   laskunID;

            lasku.Päivämäärä = dateAndTime;
            lasku.Eräpäivä   = eräpäivä;
            lasku.AsiakasID  = asiakas.Id;
            try
            {
                lasku.Laskutuskausi = laskutusCbox.SelectedItem.ToString();
            }
            catch (Exception)
            {
                MessageBox.Show("Et valinnut laskutuskautta", "!Huom");
                voikoLuoda = false;
            }

            if (voikoLuoda == true)
            {
                laskunID = handler.TallennaLasku(lasku);

                string viitenumero;
                viitenumero = Viitenumero(asiakas, laskunID);

                // luodaan pdf tiedosto ja sille olennaiset ominaisuudet
                PdfLoadedDocument loadedDocument = new PdfLoadedDocument(Properties.Resources.laskupohja);
                PdfLoadedForm     loadedForm     = loadedDocument.Form;
                PdfLoadedPage     loadedPage     = loadedDocument.Pages[0] as PdfLoadedPage;
                PdfTemplate       template       = loadedPage.CreateTemplate();
                PdfDocument       document       = new PdfDocument();
                document.PageSettings.SetMargins(2);
                PdfPage     page     = document.Pages.Add();
                PdfGraphics graphics = page.Graphics;
                graphics.DrawPdfTemplate(template, PointF.Empty, new SizeF(page.Size.Width, page.Size.Height));
                PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 20);

                float veroYhteensä, määrä, verotonHinta, hinta, yhteensä;

                float.TryParse(hintaTbox.Text, out hinta);
                float.TryParse(määräTbox.Text, out määrä);
                verotonHinta = hinta * määrä;
                veroYhteensä = verotonHinta * 1.24f - verotonHinta;
                yhteensä     = verotonHinta + veroYhteensä;

                //Viedään tietoa dokumenttiin
                (loadedForm.Fields[0] as PdfLoadedTextBoxField).Text  = dateAndTime.ToString("dd/MM/yyyy");
                (loadedForm.Fields[1] as PdfLoadedTextBoxField).Text  = "7%";                            //Viivästyskorko
                (loadedForm.Fields[2] as PdfLoadedTextBoxField).Text  = laskunID.ToString();             //Laskunumero
                (loadedForm.Fields[3] as PdfLoadedTextBoxField).Text  = asiakas.YTunnus;                 // Asiakkaan Y-Tunnus
                (loadedForm.Fields[4] as PdfLoadedTextBoxField).Text  = maksuehtoTbox.Text;              // Maksuehto
                (loadedForm.Fields[5] as PdfLoadedTextBoxField).Text  = "";                              // Viitteemme
                (loadedForm.Fields[6] as PdfLoadedTextBoxField).Text  = eräpäivä.ToString("dd/MM/yyyy"); // Eräpäivä
                (loadedForm.Fields[7] as PdfLoadedTextBoxField).Text  = "";                              // Viittenne
                (loadedForm.Fields[8] as PdfLoadedTextBoxField).Text  = toimitusehtoTbox.Text;           // Toimitusehto
                (loadedForm.Fields[63] as PdfLoadedTextBoxField).Text = verotonHinta.ToString();         // Veroton yhteensä
                (loadedForm.Fields[64] as PdfLoadedTextBoxField).Text = veroYhteensä.ToString();         // ALV yhteensä
                (loadedForm.Fields[65] as PdfLoadedTextBoxField).Text = yhteensä.ToString();             // Verollinen yhteensä
                (loadedForm.Fields[70] as PdfLoadedTextBoxField).Text = yhteensä.ToString();             // Yhteensä
                (loadedForm.Fields[71] as PdfLoadedTextBoxField).Text = EtunimiLbl.Text + " "
                                                                        + sukunimiLbl.Text + "\n" + osoiteLbl.Text + "\n" + postinumeroLbl.Text + " "
                                                                        + postitoimipaikkaLbl.Text;                      // Asiakkaan tiedot
                (loadedForm.Fields[68] as PdfLoadedTextBoxField).Text = eräpäivä.ToString("dd/MM/yyyy");                 // Eräpäivä
                (loadedForm.Fields[75] as PdfLoadedTextBoxField).Text = yritys.Nimi + "\n" + yritys.Osoite + "\n"        // Laskun lähettäjän tiedot
                                                                        + yritys.Postinumero + " " + yritys.Postiosoite; // Laskun lähettäjän tiedot
                (loadedForm.Fields[66] as PdfLoadedTextBoxField).Text = yritys.Iban;                                     // IBAN
                (loadedForm.Fields[67] as PdfLoadedTextBoxField).Text = yritys.Bicswift;                                 // BIC/SWIFT = 67
                (loadedForm.Fields[69] as PdfLoadedTextBoxField).Text = viitenumero;                                     // Viitenumero = 69
                (loadedForm.Fields[9] as PdfLoadedTextBoxField).Text  = nimikeTbox.Text;                                 // Nimike
                (loadedForm.Fields[10] as PdfLoadedTextBoxField).Text = määräTbox.Text;                                  // Määrä
                (loadedForm.Fields[11] as PdfLoadedTextBoxField).Text = "kpl";                                           // Yks.
                (loadedForm.Fields[12] as PdfLoadedTextBoxField).Text = hintaTbox.Text;                                  // hinta
                (loadedForm.Fields[13] as PdfLoadedTextBoxField).Text = "24%";                                           // Alv %
                (loadedForm.Fields[14] as PdfLoadedTextBoxField).Text = yhteensä.ToString();                             // Verollinen yhteensä

                //Tällä luupilla voi katsoa missä kohdassa mikäkin field on.
                //for (int i = 0; i < 76; i++)
                //{
                //    (loadedForm.Fields[i] as PdfLoadedTextBoxField).Text = i.ToString();
                //}

                // tallenetaan dokumentti
                loadedDocument.Save("Lasku.pdf");
                document.Save("UusiLasku.pdf");
                loadedDocument.Close(true);
                document.Close(true);
                Process.Start("Lasku.pdf");

                // Tarkistetaan onko laskun tiedot saatu tallennettua
                if (laskunID != 0)
                {
                    MessageBox.Show("Laskun tiedot tallennettiin tietokantaan", "Huom");
                }
                else
                {
                    MessageBox.Show("Laskun tietoja ei saatu tallennettua", "Huom");
                }
            }
        }
예제 #3
0
 public List <Asiakas> HaeSukunimi(Asiakas asiakas)
 {
     return(dbController.HaeSukunimi(asiakas));
 }
예제 #4
0
 public Asiakas HaeAsiakasNimellä(Asiakas asiakas)
 {
     return(dbController.HaeAsiakasNimellä(asiakas));
 }
예제 #5
0
 public bool TallennaAsiakas(Asiakas asiakas)
 {
     return(dbController.TallennaAsiakas(asiakas));
 }
        public PartialViewResult Tiedot()
        {
            Asiakas a = _kr.HaeAsiakas(User.Identity.Name);

            return(PartialView("~/Views/Asiakas/_AsiakasPartial.cshtml", a));
        }
예제 #7
0
    static void Main(string[] args)
    {
        //Tässä määritellään asiakas1-olio oletusmuodostimella.
        Asiakas asiakas1 = new Asiakas();

        //Tässä tulostetaan asiakas1-olion tiedot kutsumalla
        //AsiakkaanTiedot-property.
        System.Console.WriteLine("Asiakkaan tiedot: " +
                                 asiakas1.AsiakkaanTiedot);

        //Tässä tulostetaan tyhjä rivi.
        System.Console.WriteLine();

        //Tässä määritellään asiakas2-olio parametrillisella
        //muodostimella.
        Asiakas asiakas2 = new Asiakas("Dorothy", 100);

        //Tässä tulostetaan asiakas2-olion tiedot kutsumalla
        //AsiakkaanTiedot-property.
        System.Console.WriteLine("Asiakkaan tiedot: " +
                                 asiakas2.AsiakkaanTiedot);

        //Tässä tulostetaan tyhjä rivi.
        System.Console.WriteLine();

        //Tässä määritellään etuasiakas1-olio
        //oletusmuodostimella.
        EtuAsiakas etuAsiakas1 = new EtuAsiakas();


        //Seuraavassa tulostetaan etuAsiakas1-olion tiedot
        //kutsumalla AsiakkaanTiedot-property. Huomaa, kuinka
        //AsiakkaanTiedot-property on kopioitunut EtuAsiakas-
        //luokalle.

        System.Console.WriteLine("Etuasiakkaan tiedot: " +
                                 etuAsiakas1.AsiakkaanTiedot);

        //Tässä tulostetaan etuAsiakas1-olion bonus kutsumalla
        //LaskeBonus()-metodi.
        System.Console.WriteLine("Etuasiakkaan bonus on: {0, 0:c2}", etuAsiakas1.LaskeBonus());

        //Tässä tulostetaan tyhjä rivi.
        System.Console.WriteLine();

        //Tässä määritellään etuAsiakas2-olio parametrillisella
        //muodostimella.
        EtuAsiakas etuAsiakas2 = new EtuAsiakas("Alfred", 200,
                                                1456.40m);

        //Tässä tulostetaan etuAsiakas2-olion tiedot kutsumalla
        //AsiakkaanTiedot-property.
        System.Console.WriteLine("Etuasiakkaan tiedot: " +
                                 etuAsiakas2.AsiakkaanTiedot);

        //Tässä tulostetaan etuAsiakas2-olion bonus kutsumalla
        //LaskeBonus()-metodi.
        System.Console.WriteLine("Etuasiakkaan bonus on: {0, 0:c2}", etuAsiakas2.LaskeBonus());

        EtuAsiakas etuAsiakasVadim = new EtuAsiakas("vadim", 23, 1600.00m);

        Console.WriteLine("Asiakkaan tiedot: " + etuAsiakasVadim.AsiakkaanTiedot);
        Console.WriteLine("Lasketaan bonus: {0,7:c2}", etuAsiakasVadim.LaskeBonus());
        Console.WriteLine("Lasketaan bonus: {0,10:c2}", etuAsiakasVadim.LaskeBonus());
        Console.WriteLine("Lasketaan bonus: {0,15:c2}", etuAsiakasVadim.LaskeBonus());
    }
예제 #8
0
        public void KuuluisiLaskeaEtuhinnanAsiakkaalle()
        {
            Asiakas asiakas = new Asiakas();

            Assert.AreEqual(33.30, asiakas.LaskeHinta(33.30), 0.01);
        }
        public ActionResult Index(string luonti, string etunimi, string sukunimi, string sahkoposti,
                                  string puhelinnumero, string katuosoite, string postinumero, string paikkakunta, string tilaId,
                                  string henkilomaara, string narikka, string kahvitus, string vahtimestari, string tekninen,
                                  string alkamisPvm, string alkamisKellonaika, string loppumisPvm, string loppumiskellonaika,
                                  string maksutapa)
        {
            var yllapitomalli = new Yllapitomalli();

            if (luonti != null)
            {
                try
                {
                    var asiakas = new Asiakas(
                        etunimi,
                        sukunimi,
                        sahkoposti,
                        puhelinnumero,
                        katuosoite,
                        int.Parse(postinumero),
                        paikkakunta);

                    var valitutPalvelut = "";

                    if (narikka != null)
                    {
                        valitutPalvelut += "narikka";
                    }

                    if (kahvitus != null)
                    {
                        valitutPalvelut += valitutPalvelut != "" ? ", kahvitus" : "kahvitus";
                    }

                    if (vahtimestari != null)
                    {
                        valitutPalvelut += valitutPalvelut != "" ? ", vahtimestari" : "vahtimestari";
                    }

                    if (tekninen != null)
                    {
                        valitutPalvelut += valitutPalvelut != "" ? ", tekninen tuki" : "tekninen tuki";
                    }

                    var alkamisAika =
                        ((DateTimeOffset) new DateTime(DateTime.ParseExact($"{alkamisPvm} {alkamisKellonaika}",
                                                                           "dd.MM.yyyy HH.mm", CultureInfo.InvariantCulture).Ticks)).ToUnixTimeSeconds();
                    var loppumisAika =
                        ((DateTimeOffset) new DateTime(DateTime.ParseExact($"{loppumisPvm} {loppumiskellonaika}",
                                                                           "dd.MM.yyyy HH.mm", CultureInfo.InvariantCulture).Ticks)).ToUnixTimeSeconds();

                    Asiakkaat = yllapitomalli.LisaaVaraus(asiakas, Int32.Parse(tilaId), Int32.Parse(henkilomaara),
                                                          valitutPalvelut, alkamisAika, loppumisAika, maksutapa, 200, Asiakkaat);

                    var varaukset = yllapitomalli.HaeKaikkiVaraukset();

                    var model = new List <object> {
                        varaukset, Tilat
                    };

                    return(View(model));
                }
                catch (Exception e)
                {
                    ViewBag.Virheilmoitus = "Virhe varauksen lisäämisessä." + e;
                    Debug.WriteLine("kätsi");

                    var varaukset = yllapitomalli.HaeKaikkiVaraukset();

                    var model = new List <object> {
                        varaukset, Tilat
                    };

                    return(View(model));
                }
            }
            else
            {
                var varaukset = yllapitomalli.HaeKaikkiVaraukset();

                var model = new List <object> {
                    varaukset, Tilat
                };

                return(View(model));
            }
        }
예제 #10
0
    static void Main(string[] args)
    {
        /*
         * Tässä teen eri kokeilut upcast ja downcast ymmärtämiseen.
         *
         */
        // Asiakas on HenkiloTiedon aliluokka
        Asiakas vadimAsiakas = new Asiakas("Vadim", 111, 3);
        // HenkiloTiedot on ylin luokka
        HenkiloTiedot vadimHenkiloTiedot = new HenkiloTiedot("Vadim", 111);
        // muunnetaan Asiakas luokka sen yliluokkaan (upcast).
        HenkiloTiedot vadimAsiakasHenkiloTeidoksi = (HenkiloTiedot)vadimAsiakas;

        Console.WriteLine("-----HenkiloTiedon alkuperainen TulostaTiedot()-----");
        vadimHenkiloTiedot.TulostaTiedot();
        Console.WriteLine("-----Asikaan muunnettu HenkiloTiedoksi TulostaTiedot()-----");
        vadimAsiakasHenkiloTeidoksi.TulostaTiedot();
        Console.WriteLine("-----Ja Asiakkaan alkuperainen TulostaTiedot()-----");
        vadimAsiakas.TulostaTiedot();
        Console.WriteLine("\n\n");

        Console.WriteLine("Tässä yritetaan muuntaa yliluokka HenkiloTiedot alaluokaksi Asiakas");
        // yritetaan muuntaa yliluokka HenkiloTiedot alaluokaksi Asiakas
        try
        {
            Asiakas vadimAlaLuokkaHenkiloTiedot = (Asiakas)vadimHenkiloTiedot;
            // tulostetaan
            vadimAlaLuokkaHenkiloTiedot.TulostaTiedot();
        }
        catch
        {
            Console.WriteLine("Yläluokka ei muuttuu alaluokaksi...");
        }

        Console.WriteLine("----Yritetaan aikasemmin muunnettu alaluokka yliluokaksi muuntaa alaluokaksi-----");
        // yritetaan muuntaa yliluokka HenkiloTiedot alaluokaksi Asiakas
        Asiakas vadimVanhaAla_YliLuokkaHenkiloTiedot = (Asiakas)vadimAsiakasHenkiloTeidoksi;

        // tulostetaan
        vadimVanhaAla_YliLuokkaHenkiloTiedot.TulostaTiedot();

        Console.WriteLine("\n");

        // muunnetaan alasin luokka HopeaAsiakas ylinluokkaan HenkiloTiedot
        HopeaEtuAsiakas vadimHopeaAsiakas = new HopeaEtuAsiakas("Vadim", 111, 3, 100.10f);

        Console.WriteLine("----Tässä alinluokan TulostaTiedot ja LaskeBonus----");
        vadimHopeaAsiakas.TulostaTiedot();
        vadimHopeaAsiakas.LaskeBonus();
        Console.WriteLine("\n");

        Console.WriteLine("----Munnoksen vadimHopeaAsikass ylinluokaksi HenkiloTiedot() jälkeen----");
        HenkiloTiedot vadimHopeaYlinLuokkaan = (HenkiloTiedot)vadimHopeaAsiakas;

        vadimHopeaYlinLuokkaan.TulostaTiedot();
        Console.WriteLine("\n");

        Console.WriteLine("----Takaisin entinen ala ja nyt ylinluokka vadimHopeaYlinLuokkaan alaluokaksi----");
        HopeaEtuAsiakas entAlaNytYlaVadimHopea = (HopeaEtuAsiakas)vadimHopeaYlinLuokkaan;

        entAlaNytYlaVadimHopea.TulostaTiedot();
        entAlaNytYlaVadimHopea.LaskeBonus();
        Console.WriteLine("\n");


        // yritetään muuntaa aikasemmin muunnettu HopeaEtuAsiakas luokka muuntaa Asiakas luokaaksi
        Console.WriteLine("-----Munnetaan aikasemmin muunnettu HopeaEtuAsiakas-olio newAsiakas-olioksi");
        try
        {
            Asiakas newAsiakas = (Asiakas)entAlaNytYlaVadimHopea;
            newAsiakas.TulostaTiedot();
            newAsiakas.LaskeBonus();
        }
        catch
        {
            Console.WriteLine("Yläluokka ei muuttuu alaluokaksi...");
        }

        Console.WriteLine("\n");

        /*
         *
         * Tässä lopetetaan omat kokeilut, eli aikasemmin munnettu alaluokka yliluokaksi
         * saa muuntaa takaisin alaluokaksi (downcast)
         */

        //Seuraavassa määritellään hopeaEtuAsiakas-olio
        HopeaEtuAsiakas hopeaEtuAsiakas = new
                                          HopeaEtuAsiakas("Laura", 3000, 10, 12345.00f);

        //tulostetaan tulevaa vertaulua varten
        Console.WriteLine("ToString: " + hopeaEtuAsiakas.ToString());
        hopeaEtuAsiakas.TulostaTiedot();
        hopeaEtuAsiakas.LaskeBonus();

        //Seuraavassa määritellään henkiloTiedot1-olio, joka
        //alustetaan muuntamalla hopeaEtuAsiakas-olio
        //(upcast). Tämä on mahdollista koska HenkiloTiedot
        //on HopeaEtuAsiakas-luokan välillinen yliluokka.
        //Huomaa, että henkiloTiedot1-olio sisältää kuitenkin
        //vain ne jäsenet, jotka on määritelty HenkiloTiedot-
        //luokassa, eli nimi, id ja TulostaTiedot()-metodi.

        HenkiloTiedot henkiloTiedot1 = (HenkiloTiedot)hopeaEtuAsiakas;

        Console.WriteLine("-- HopeaEtuAsiakas-olio on muunnettu HenkiloTiedot-olioksi --");

        //Seuraavassa kutsutaan henkiloTiedot1-olion
        //TulostaTiedot()-metodi. Huomaa, että koska
        //henkiloTiedot1-olio on alustettu muunntamalla
        //hopeaEsuAsiakas-olio, käytännössä hopeaEsuAsiakas-olion
        //TulostaTiedot() tulee kutsutuksi!
        //HopeaEtuAsiakkaan tiedot: Laura 3000 Ostot: 12 345,00 € eikä "Henkilön tiedot: Laura 3000"
        henkiloTiedot1.TulostaTiedot();

        Console.WriteLine("\t\t-------------------");

        Asiakas asiakas1 = new Asiakas("Lucia", 2000, 3);

        //tulostetaan tulevaa vertaulua varten
        Console.WriteLine("ToString: " + asiakas1.ToString());
        asiakas1.TulostaTiedot();
        asiakas1.LaskeBonus();

        //Seuraavassa määritellään henkiloTiedot2-olio, joka
        //alustetaan muuntamalla asiakas1-olio (upcast). Tämä
        //on mahdollista koska HenkiloTiedot on Asiakas-luokan
        //välitön yliluokka. Huomaa, että henkiloTiedot2-olio
        //sisältää kuitenkin vain ne jäsenet, jotka on
        //määritelty HenkiloTiedot-luokassa, eli nimi, id ja
        //TulostaTiedot()-metodi.

        HenkiloTiedot henkiloTiedot2 = (HenkiloTiedot)asiakas1;

        Console.WriteLine("-- Asiakas-olio on muunnettu HenkiloTiedot-olioksi --");

        //Seuraavassa kutsutaan henkiloTiedot2-olion
        //TulostaTiedot()-metodi. Huomaa, että koska
        //henkiloTiedot2-olio on alustettu muunntamalla
        //asiakas1-olio, käytännössä asiakas1-olion
        //ylikirjoitettu TulostaTiedot() tulee kutsutuksi!
        //Asiakkaan tiedot: Lucia 2000 Suhteen kesto: 3 eikä "Henkilön tiedot: Lucia 2000"
        Console.WriteLine("ToString: " + henkiloTiedot2.ToString());
        henkiloTiedot2.TulostaTiedot();

        Console.WriteLine("\t\t-------------------");

        //Seuraavassa hopeaEtuAsiakas-olio muunnetaan asiakas1-
        //olioksi (upcast). Tämä on mahdollista koska Asiakas-
        //luokka on HopeaEtuAsiakas-luokan yliluokka. Huomaa,
        //että muunnoksen seurauksena vain Asiakas-luokassa
        //määritellyt jäsenet eli nimi, id, suhteenKesto,
        //LaskeBonus() ja TulostaTiedot() ovat käytössä, mutta
        //ei ostot-kenttä!
        asiakas1 = (Asiakas)hopeaEtuAsiakas;

        Console.WriteLine("-- HopeaEtuAsiakas-olio on muunnettu Asiakas-olioksi --");

        //Seuraavassa kutsutaan asiakas1-olion metodeja.
        //Huomaa, että koska asiakas1 on alustettu muunntamalla
        //hopeaEtuAsiakas-olio, tämän olion ylikirjoitettu
        //TulostaTiedot()-metodit tulee kutsutuiksi.
        //HopeaEtuAsiakkaan tiedot: Laura 3000 Ostot: 12 345,00 €
        //Mutta,
        //koska LaskeBonus()-metodi on merkitty new:lla
        //HopeaEtuAsiakas-luokassa, Asiakas-luokassa määritelty
        //LaskeBonus() tulee kutsutuksi
        //Asiakkaan bonus on: 1 000,00 € eikä "HopeaAsiakkaan bonus on: 1 234,50 €"
        Console.WriteLine("ToString: " + asiakas1.ToString());
        asiakas1.TulostaTiedot();
        asiakas1.LaskeBonus();

        Console.WriteLine("\t\t-------------------");

        //Seuraavassa henkiloTiedot1-olio muunnetaan
        //hopeaEtuAsiakas2-olioksi (downcast). Huomaa, että
        //tämä on mahdollista vain sen takia, että
        //henkiloTiedot1-olio alunperin luotiin muuntamalla
        //HopeaEtuAsiakas-luokan olio. Huomaa myös, että
        //hopeaEtuAsiakas2 sisältää kaikki HopeaEtuAsiakas-
        //luokkaan kuuluvat jäsenet. nimi, id ja ostot

        HopeaEtuAsiakas hopeaEtuAsiakas2 = (HopeaEtuAsiakas)henkiloTiedot1;

        Console.WriteLine("-- HenkiloTiedot-olio on muunnettu HopeaEtuAsiakas-olioksi --");
        Console.WriteLine("jäsenet: nimi: " + hopeaEtuAsiakas2.nimi + "" +
                          ", id: " + hopeaEtuAsiakas2.id + "" +
                          ", suhteen kesto: " + hopeaEtuAsiakas2.suhteenKesto + "" +
                          ", ostot: " + hopeaEtuAsiakas2.ostot);
        Console.WriteLine("ToString: " + hopeaEtuAsiakas2.ToString());
        hopeaEtuAsiakas2.TulostaTiedot();
        hopeaEtuAsiakas2.LaskeBonus();

        Console.WriteLine("\t\t-------------------");

        //Seuraavassa asiakas1-olio muunnetaan
        //hopeaEtuAsiakas3-olioksi (downcast). Huomaa, että
        //tämä on taas mahdollista vain sen takia, että
        //asiakas1 aikaisemmin alustettiin muunntamalla
        //HopeaEtuAsiakas-luokan olio.
        HopeaEtuAsiakas hopeaEtuAsiakas3 = (HopeaEtuAsiakas)asiakas1;

        Console.WriteLine("-- Asiakas-olio on muunnettu HopeaEtuAsiakas-olioksi --");

        Console.WriteLine("ToString: " + hopeaEtuAsiakas3.ToString());
        hopeaEtuAsiakas3.TulostaTiedot();
        hopeaEtuAsiakas3.LaskeBonus();

        Console.WriteLine("\t\t-------------------");

        //Seuraavassa määritellään olioita ilman
        //tyyppimuunnosta.
        HenkiloTiedot henkiloTiedot3 = new HenkiloTiedot("Paul",
                                                         5000);
        Asiakas asiakas2 = new Asiakas("Jyrki", 4000, 7);

        //Seuraava muunnos aliluokkaan (downcast) epäonnistuu
        //koska henkiloTiedot3-olio luotiin suoraan
        //HenkiloTiedot-luokan muodostimella!

        //HopeaEtuAsiakas hopeaEtuAsiakas4 = (HopeaEtuAsiakas)henkiloTiedot3;

        //Seuraava muunnos aliluokkaan (downcast) epäonnistuu
        //koska asiakas2-olio luotiin suoraan Asiakas-luokan
        //muodostimella!

        //HopeaEtuAsiakas hopeaEtuAsiakas5 = (HopeaEtuAsiakas)asiakas2;

        //Seuraava muunnos aliluokkaan (downcast) epäonnistuu
        //koska henkiloTiedot3-olio luotiin suoraan
        //HenkiloTiedot-luokan muodostimella!

        //Asiakas asiakas3 = (Asiakas)henkiloTiedot3;

        //Seuraava muunnos epäonnistuu koska Asiakas- ja
        //AliHankija-luokat eivät ole yhteensopivia!

        //Alihankija aliHankija = (Alihankija) asiakas2;
    }