basic logic

This commit is contained in:
2022-02-25 12:20:16 +08:00
parent abeae1cab9
commit 9a6011c3d8
49 changed files with 773 additions and 73 deletions

View 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
}

View File

@ -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()

View File

@ -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);
}

View File

@ -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)
{