44 lines
1.2 KiB
C#
44 lines
1.2 KiB
C#
using System.Xml.Linq;
|
|
|
|
namespace Billing.Models
|
|
{
|
|
public class Category : BaseModel
|
|
{
|
|
public int Id { get; set; }
|
|
public CategoryType Type { 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);
|
|
Type = (CategoryType)Read(node, nameof(Type), 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(Type), (int)Type);
|
|
Write(node, nameof(Icon), Icon);
|
|
Write(node, nameof(Name), Name);
|
|
if (ParentId != null)
|
|
{
|
|
Write(node, nameof(ParentId), ParentId.Value);
|
|
}
|
|
}
|
|
}
|
|
|
|
public enum CategoryType
|
|
{
|
|
Spending,
|
|
Income
|
|
}
|
|
} |