using System.Xml.Linq; namespace Billing.Models { public class Category : BaseModel { public int Id { get; set; } public string Icon { get; set; } = ICON_DEFAULT; public string Name { get; set; } public int? ParentId { get; set; } public override void OnXmlDeserialize(XElement node) { Id = Read(node, nameof(Id), 0); Icon = Read(node, nameof(Icon), ICON_DEFAULT); Name = Read(node, nameof(Name), string.Empty); var parentId = Read(node, nameof(ParentId), -1); if (parentId >= 0) { ParentId = parentId; } } public override void OnXmlSerialize(XElement node) { Write(node, nameof(Id), Id); Write(node, nameof(Icon), Icon); Write(node, nameof(Name), Name); if (ParentId != null) { Write(node, nameof(ParentId), ParentId.Value); } } } }