using System.Collections.Generic; using System.ComponentModel; using System.Xml.Serialization; namespace D2Multi { public class D2Account : INotifyPropertyChanged { private string _name; private string _email; private string _encryptedPassword; private string _password; public string Name { get => _name; set { if (_name == value) return; _name = value; OnPropertyChanged(nameof(Name)); } } public string Email { get => _email; set { if (_email == value) return; _email = value; OnPropertyChanged(nameof(Email)); } } /// DPAPI-protected secret, Base64. Persisted to XML only. public string EncryptedPassword { get => _encryptedPassword; set { if (_encryptedPassword == value) return; _encryptedPassword = value; OnPropertyChanged(nameof(EncryptedPassword)); } } /// Transient plain text for editing; never written to XML. [XmlIgnore] public string Password { get => _password; set { if (_password == value) return; _password = value; OnPropertyChanged(nameof(Password)); } } public event PropertyChangedEventHandler PropertyChanged; void OnPropertyChanged(string name) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); public List Characters { get; set; } } public class D2Character { public string Name { get; set; } public string Class { get; set; } public List Missions { get; set; } } public enum D2Level { Normal, Nightmare, Hell } public class D2Mission { public D2Level Level { get; set; } public bool A1_Enpowered { get; set; } public bool A5_Socket { get; set; } } }