using System;

using System.Collections.Generic;

using System.IO;

 

namespace struk_fájlkez_gyak

{

    class Program

    {

        struct Áru

        {

            public string név;

            public int db;

            public int ár;

            public int garancia;

            public Áru(string neve, int db, int egységár, int gar)

            {

                this.név = neve;

                this.db = db;

                ár = egységár;

                garancia = gar;

            }

            public void Kiír()

            {

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

                Console.WriteLine("Név: {0}", név);

                Console.WriteLine("Mennyiség: {0} db", db);

                Console.WriteLine("Egységár: {0} Ft", ár);

                Console.WriteLine("Összesen: {0} Ft", this.Összes());

                Console.WriteLine("Granacia: {0} év", garancia);

            }

            public int Összes()

            {

                return ár * db;

            }

        }

        static List<Áru> Beolvas(string fájlnév)

        {

            List<Áru> vissza = new List<Áru>();

            try

            {

                StreamReader sr = new StreamReader(fájlnév);

                while (!sr.EndOfStream)

                {

                    try

                    {

                        string[] sor = sr.ReadLine().Split('-');

                        Áru ideiglenes = new Áru(sor[0], int.Parse(sor[1]), int.Parse(sor[2]), int.Parse(sor[3]));

                        vissza.Add(ideiglenes);

                    }

                    catch (Exception e)

                    {

                        Áru ideiglenes = new Áru("Hiba történt a termék beolvasása közben", 0, 0, 0);

                        vissza.Add(ideiglenes);

                    }

                }

                sr.Close();

            }

            catch (Exception e)

            {

                Console.WriteLine("Hiba történt: " + e.Message);

            }

            return vissza;

        }

        static void Ír(string fájlnév, string szöveg)

        {

            try

            {

                StreamWriter sw = new StreamWriter(fájlnév);

                sw.WriteLine(szöveg);

                sw.Flush(); sw.Close();

            }

            catch (Exception e)

            {

                Console.WriteLine(e.Message);

            }

        }

        static void Main(string[] args)

        {

            Console.Write("Adja meg a fájl nevét, kiterjesztéssel: ");

            string fájlnév = Console.ReadLine();

            Console.WriteLine("Beolvasás folyamatban...");

            List<Áru> raktár = Beolvas(fájlnév);

            ulong összeg = 0;

            foreach (Áru item in raktár)

            {

                item.Kiír();

                összeg += (ulong)item.Összes();

            }

            Ír("összesített.txt", összeg.ToString());

            Console.ReadKey();

        }

    }

}