public static void Write(PaymentAccount acount, string path) { XmlSerializer serializer = new XmlSerializer(typeof(PaymentAccount)); using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write)) { serializer.Serialize(fs, acount); } }
public static PaymentAccount Read(string path) { PaymentAccount acount = null; XmlSerializer serializer = new XmlSerializer(typeof(PaymentAccount)); using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read)) { acount = (serializer.Deserialize(fs) as PaymentAccount); } if (PaymentAccount.IsCalculate) { acount.Calculate(); } return(acount); }
static void Main(string[] args) { // створюєм клас оплати з обовязковими даними PaymentAccount account = new PaymentAccount() { PaymentPerDay = 15, NumOfDay = 30, FinePerDay = 5, DaysOfDelay = 3 }; DoSerialize.Write(account, "Pay.xml"); // записуємо клас в файл PaymentAccount.IsCalculate = true; // задаєм змінну для обрахунку (вона і так була true, але перестраховуємося) PaymentAccount new1Account = DoSerialize.Read("Pay.xml"); // зчитуємо клас з файлу з обрахунками View.Show(new1Account); // дивимся акаунт з обрахунками PaymentAccount.IsCalculate = false; // обрахунок false PaymentAccount new2Account = DoSerialize.Read("Pay.xml"); // зчитуємо клас з файлу без обрахунків View.Show(new2Account); // виводим без обрахунків Console.ReadKey(); }
public static void Show(PaymentAccount account) { if (PaymentAccount.IsCalculate) { Console.WriteLine("\nЗ обрахунками"); } else { Console.WriteLine("\nБез обрахункiв"); } Console.WriteLine ( $"Денна оплата {account.PaymentPerDay}\n" + $"Кiлькiсть днiв {account.NumOfDay}\n" + $"Штраф за день {account.FinePerDay}\n" + $"Кi-ть штрафних {account.DaysOfDelay}\n" + $"Оплата без штр. {account.AmountDue}\n" + $"Штрафи {account.Fine}\n" + $"Загальна оплата {account.Total}" ); }