public override void Save(PersonenManager pm)
        {
            StreamWriter filewriter = null;

            try
            {
                filewriter = new StreamWriter(Filename);

                foreach (Person p in pm.PersonenReadOnly())
                {
                    filewriter.WriteLine(p.ToStringCSV());
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Fehler im WriteLine", ex);
            }
            finally
            {
                if (filewriter != null)
                {
                    filewriter.Close();
                }
            }
        }
        private PersonenManager StringToList(string[] personen, PersonenManager pm)
        {
            for (int i = 0; i < personen.Length; i++)
            {
                string[] Split = null;
                Split = personen[i].Split(';');

                switch (Split[0])
                {
                case "M":
                    if (Split[3] != "")
                    {
                        throw new Exception("Ein Mitarbeiter hat keine Prämie!!!");
                    }
                    pm.AddPerson(new Mitarbeiter(Split[0], Split[1], Split[2]));
                    break;

                case "V":
                    if (Split[3] == "")
                    {
                        throw new Exception("Ein Vorgesetzter hat eine Prämie!!!");
                    }
                    pm.AddPerson(new Vorgesetzter(Split[0], Split[1], Split[2], Convert.ToDouble(Split[3])));
                    break;
                }
            }
            return(pm);
        }
        public override PersonenManager Load()
        {
            PersonenManager pm = new PersonenManager();

            string[] persons = File.ReadAllLines(Filename);
            pm = StringToList(persons, pm);
            return(pm);
        }
Exemple #4
0
        static void ErstellenVonVorgesetzten(int anzahl, PersonenManager pm)
        {
            Vorgesetzter V       = null;
            int          counter = 0;

            while (counter < anzahl)
            {
                V = new Vorgesetzter(GetName(), GetMitarbeiterNr(), getPrämie());
                pm.AddPerson(V);
                counter++;
            }
        }
Exemple #5
0
        static void ErstellenVonMitarbeiter(int anzahl, PersonenManager pm)
        {
            Mitarbeiter M       = null;
            int         counter = 0;

            while (counter < anzahl)
            {
                M = new Mitarbeiter(GetName(), GetMitarbeiterNr());
                pm.AddPerson(M);
                counter++;
            }
        }
Exemple #6
0
 public override void Save(PersonenManager pm)
 {
     using (BinaryWriter bw = new BinaryWriter(File.Open(Filename, FileMode.Create)))
     {
         foreach (Person p in pm.PersonenReadOnly())
         {
             if (p.PersonenTyp == "M")
             {
                 WriteByteArrayToStream(bw, p);
             }
             else if (p.PersonenTyp == "V")
             {
                 WriteByteArrayToStream(bw, p);
                 byte[] Data = ConvertStringToByteArray(p.toPraemie());
                 WriteByteArrayWithPrefix(bw, Data);
             }
         }
     }
 }
Exemple #7
0
        private PersonenManager GetTheData(int counter, BinaryReader br, PersonenManager pm, byte Personentyp)
        {
            string[] TextData = new string[counter];

            for (int idx = 0; idx < counter; idx++)
            {
                int    NumberOfBytes = br.ReadInt32();
                byte[] Data          = new byte[NumberOfBytes];

                for (int i = 0; i < NumberOfBytes; i++)
                {
                    Data[i] = br.ReadByte();
                }
                string Text = Encoding.ASCII.GetString(Data);
                TextData[idx] = Text;
            }
            pm = StringToList(TextData, pm, Personentyp);

            return(pm);
        }
Exemple #8
0
        private PersonenManager StringToList(string[] personen, PersonenManager pm, byte Personentyp)
        {
            switch (Personentyp)
            {
            case 77:
                if (personen.Length > 2)
                {
                    throw new Exception("Ein Mitarbeiter hat keine Prämie!!!");
                }
                pm.AddPerson(new Mitarbeiter(personen[0], personen[1]));
                break;

            case 86:
                if (personen[2] == "")
                {
                    throw new Exception("Ein Vorgesetzter hat eine Prämie!!!");
                }
                pm.AddPerson(new Vorgesetzter(personen[0], personen[1], Convert.ToDouble(personen[2])));
                break;
            }

            return(pm);
        }
Exemple #9
0
        public override PersonenManager Load()
        {
            PersonenManager pm = new PersonenManager();

            using (BinaryReader br = new BinaryReader(File.Open(Filename, FileMode.Open)))
            {
                byte Personentyp;
                while (br.BaseStream.Position != br.BaseStream.Length)
                {
                    Personentyp = br.ReadByte();
                    if (Personentyp == 77)
                    {
                        int counterOfMitarbeiter = 2;
                        pm = GetTheData(counterOfMitarbeiter, br, pm, Personentyp);
                    }
                    else if (Personentyp == 86)
                    {
                        int counterOfVorgesetzter = 3;
                        pm = GetTheData(counterOfVorgesetzter, br, pm, Personentyp);
                    }
                }
            }
            return(pm);
        }
Exemple #10
0
        static void Main(string[] args)
        {
            PersonenManagerSaverBinary pmsb = null;
            PersonenManagerSaverCSV    pmsc = null;
            PersonenManager            pm   = null;

            try
            {
                string FileTyp;
                string FileName;
                char   AuswahlSave = ' ';
                pm = new PersonenManager();
                Person p = null;

                #region Auswahl ob Mitarbeiter oder Vorgesetzter
                char AuswahlPerson = ' ';
                int  Anzahl        = 0;
                AuswahlPerson = GetAValidChar('M', 'V', "Wollen Sie Mitarbeiter(M) oder Vorgesetzte(V) erzeugen!");

                switch (AuswahlPerson)
                {
                case 'M':
                    Anzahl = GetAValidNumber(1, 10, "Wie viele Mitarbeiter wollen Sie erstellen?");
                    ErstellenVonMitarbeiter(Anzahl, pm);
                    break;

                case 'V':
                    Anzahl = GetAValidNumber(1, 10, "Wie viele Vorgesetzte wollen Sie erstellen?");
                    ErstellenVonVorgesetzten(Anzahl, pm);
                    pm.AddPerson(p);
                    break;
                }
                #endregion

                #region Auswahl ob Binär oder in Csv Format Speichern
                AuswahlSave = GetAValidChar('B', 'C', "Wollen Sie Binär(B) oder im CSV(C) Format speichern? ");
                switch (AuswahlSave)
                {
                case 'B':
                    pmsb = new PersonenManagerSaverBinary();
                    Console.WriteLine("Wie soll das File heißen: ");
                    FileTyp       = ".txt";
                    FileName      = Console.ReadLine();
                    pmsb.Filename = FileName + FileTyp;
                    pmsb.Save(pm);
                    pm = pmsb.Load();
                    pm.PrintAll();
                    break;

                case 'C':
                    pmsc = new PersonenManagerSaverCSV();
                    Console.WriteLine("Wie soll das File heißen: ");
                    FileTyp       = ".csv";
                    FileName      = Console.ReadLine();
                    pmsc.Filename = FileName + FileTyp;
                    pmsc.Save(pm);
                    pm = pmsc.Load();
                    pm.PrintAll();
                    break;
                }
                #endregion
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }