basic logic
This commit is contained in:
41
Billing.Shared/Models/Account.cs
Normal file
41
Billing.Shared/Models/Account.cs
Normal file
@ -0,0 +1,41 @@
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Billing.Models;
|
||||
|
||||
public class Account : BaseModel
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string Icon { get; set; } = ICON_DEFAULT;
|
||||
public AccountCategory Category { get; set; }
|
||||
public string Name { get; set; }
|
||||
public decimal Balance { get; set; }
|
||||
public string Memo { get; set; }
|
||||
|
||||
public override void OnXmlDeserialize(XElement node)
|
||||
{
|
||||
Id = Read(node, nameof(Id), 0);
|
||||
Icon = Read(node, nameof(Icon), ICON_DEFAULT);
|
||||
Category = (AccountCategory)Read(node, nameof(Category), 0);
|
||||
Name = Read(node, nameof(Name), string.Empty);
|
||||
Balance = Read(node, nameof(Balance), 0m);
|
||||
Memo = Read(node, nameof(Memo), null);
|
||||
}
|
||||
|
||||
public override void OnXmlSerialize(XElement node)
|
||||
{
|
||||
Write(node, nameof(Id), Id);
|
||||
Write(node, nameof(Icon), Icon);
|
||||
Write(node, nameof(Category), (int)Category);
|
||||
Write(node, nameof(Name), Name);
|
||||
Write(node, nameof(Balance), Balance);
|
||||
Write(node, nameof(Memo), Memo);
|
||||
}
|
||||
}
|
||||
|
||||
public enum AccountCategory
|
||||
{
|
||||
Cash = 0,
|
||||
CreditCard,
|
||||
DebitCard,
|
||||
ElecAccount
|
||||
}
|
@ -16,6 +16,8 @@ public interface IModel
|
||||
|
||||
public abstract class BaseModel : IModel, IDisposable
|
||||
{
|
||||
protected const string ICON_DEFAULT = "ic_default";
|
||||
|
||||
private bool disposed = false;
|
||||
|
||||
public static T ParseXml<T>(string xml) where T : BaseModel, new()
|
||||
|
@ -8,6 +8,7 @@ public class Billing : BaseModel
|
||||
public decimal Amount { get; set; }
|
||||
public string Name { get; set; }
|
||||
public int CategoryId { get; set; }
|
||||
public int WalletId { get; set; }
|
||||
public string Store { get; set; }
|
||||
public DateTime CreateTime { get; set; }
|
||||
|
||||
@ -16,6 +17,7 @@ public class Billing : BaseModel
|
||||
Amount = Read(node, nameof(Amount), 0m);
|
||||
Name = Read(node, nameof(Name), string.Empty);
|
||||
CategoryId = Read(node, nameof(CategoryId), -1);
|
||||
WalletId = Read(node, nameof(WalletId), -1);
|
||||
Store = Read(node, nameof(Store), string.Empty);
|
||||
CreateTime = Read(node, nameof(CreateTime), default(DateTime));
|
||||
}
|
||||
@ -25,6 +27,7 @@ public class Billing : BaseModel
|
||||
Write(node, nameof(Amount), Amount);
|
||||
Write(node, nameof(Name), Name);
|
||||
Write(node, nameof(CategoryId), CategoryId);
|
||||
Write(node, nameof(WalletId), WalletId);
|
||||
Write(node, nameof(Store), Store);
|
||||
Write(node, nameof(CreateTime), CreateTime);
|
||||
}
|
||||
|
@ -5,12 +5,14 @@ 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)
|
||||
@ -22,6 +24,7 @@ public class Category : BaseModel
|
||||
public override void OnXmlSerialize(XElement node)
|
||||
{
|
||||
Write(node, nameof(Id), Id);
|
||||
Write(node, nameof(Icon), Icon);
|
||||
Write(node, nameof(Name), Name);
|
||||
if (ParentId != null)
|
||||
{
|
||||
|
Reference in New Issue
Block a user