using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Serialization.Formatters.Binary; using System.Xml.Serialization; namespace Database { public class Program { static void Main(string[] args) { string line = ""; using (StreamReader sr = new StreamReader("option.ini.txt", System.Text.Encoding.Default)) { line = sr.ReadLine(); } List<Person> employees = new List<Person>(); XmlSerializer xs = new XmlSerializer(typeof(List<Person>)); BinaryFormatter bf = new BinaryFormatter(); if (line == "xml") { if (File.Exists("person.xml")) { using (FileStream fs = new FileStream("person.xml", FileMode.OpenOrCreate)) { List<Person> newEmployees = (List<Person>)xs.Deserialize(fs); employees = newEmployees; } } } if (line == "bin") { if (File.Exists("person.dat")) { using (FileStream fs = new FileStream("person.dat", FileMode.OpenOrCreate)) { List<Person> newEmployees = (List<Person>)bf.Deserialize(fs); employees = newEmployees; } } } if (line == "bin" || line == "xml") { Console.WriteLine("Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ bin ΠΈΠ»ΠΈ xml Π² ΡΠ°ΠΉΠ»Π΅ option.ini.txt"); } while (true) { Console.Clear(); Console.WriteLine("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:"); string com = Console.ReadLine(); if (com.ToLower() == "exit") { if (line == "xml") { using (FileStream fs = new FileStream("person.xml", FileMode.Create)) { xs.Serialize(fs, employees); } return; } else { using (FileStream fs = new FileStream("person.dat", FileMode.Create)) { bf.Serialize(fs, employees); } return; } } if (com.ToLower() == "allsee") { if (line == "xml") { var res = employees.OrderBy(u => u.Name).ThenBy(u => u.Surname); foreach (Person u in res) { Console.WriteLine("ΠΠΌΡ: {0} Π€Π°ΠΌΠΈΠ»ΠΈΡ: {1} Π’Π°Π±Π΅Π»ΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ: {2}", u.Name, u.Surname, u.PersonnelNumber); } Console.ReadLine(); continue; } if (line == "bin") { var res = employees.OrderBy(u => u.Name).ThenBy(u => u.Surname); foreach (Person u in res) { Console.WriteLine("ΠΠΌΡ: {0} Π€Π°ΠΌΠΈΠ»ΠΈΡ: {1} Π’Π°Π±Π΅Π»ΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ: {2}", u.Name, u.Surname, u.PersonnelNumber); } Console.ReadLine(); continue; } } if (com.ToLower() == "del") { string t; Console.WriteLine("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ°Π±Π΅Π»ΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΠ· Π±Π°Π·Ρ:"); t = Console.ReadLine(); if (employees.Exists(p => p.PersonnelNumber == t)) { for (int i = 0; i < employees.Count; i++) { if (employees[i].PersonnelNumber == t) { employees.Remove(employees[i]); } } Console.WriteLine("Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ»ΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ."); } else { Console.WriteLine("Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° Ρ ΡΠ°ΠΊΠΈΠΌ ΡΠ°Π±Π΅Π»ΡΠ½ΡΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ!"); } Console.ReadKey(); continue; } if (com.ToLower() == "add") { string name; string surname; string personnelnumber; Console.WriteLine("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΈΠΌΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°:"); name = Console.ReadLine(); Console.WriteLine("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ°ΠΌΠΈΠ»ΠΈΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°:"); surname = Console.ReadLine(); Console.WriteLine("ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ°Π±Π΅Π»ΡΠ½ΡΠΉ Π½ΠΎΠΌΠ΅Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°:"); personnelnumber = Console.ReadLine(); Person p = new Person(name, surname, personnelnumber); employees.Add(p); continue; } if (com.ToLower() != "add") { Console.WriteLine("ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:"); Console.WriteLine("\tadd ΡΠΎΠ·Π΄Π°ΡΡ Π·Π°ΠΏΠΈΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°"); Console.WriteLine("\tdel Π£Π΄Π°Π»ΠΈΡΡ Π·Π°ΠΏΠΈΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°"); Console.WriteLine("\tallsee ΠΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ²"); Console.WriteLine("\texit ΠΡΠΉΡΠΈ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅"); Console.ReadKey(); continue; } } } } [Serializable] public class Person { public string Name { get; set; } public string Surname { get; set; } public string PersonnelNumber { get; set; } public Person() { } public Person(string name, string surname, string personnelnumber) { Name = name; Surname = surname; PersonnelNumber = personnelnumber; } } } How in this code to take out the deserialization and serialization separately into classes and manage them from this menu?