namespace JiDangJia.Core;
public static class ManualFinance
{
public static Dictionary<string,string> Details(string major,string direction)=>FinanceAnalytics.Details(major)
.Where(p=>major!="STORE"||direction=="EXPENSE"||p.Key=="STORE_OTHER").ToDictionary();
public static string StoreCategory(string detail,string direction)=>detail=="STORE_OTHER"?direction=="INCOME"?"OTHER_IN":"OTHER_OUT":detail;
public static bool MatchesCategory(string major,string category)=>major switch
{
"PAWN"=>new[]{"INTEREST","STORAGE_FEE","C_FEE","PENALTY_IN","PRINCIPAL_IN","PAWN_OUT","DEAD_SALE","OTHER_IN","OTHER_OUT","OTHER_INCOME","OTHER_EXPENSE"}.Contains(category),
"RECYCLE"=>new[]{"RECYCLE_OUT","RECYCLE_COST","RECOVERY","SALE_IN","SALE_REFUND","STOCK_REFUND","OTHER_IN","OTHER_OUT","OTHER_INCOME","OTHER_EXPENSE"}.Contains(category),
"SALE"=>new[]{"SALE_IN","STOCK_OUT","SALE_REFUND","STOCK_REFUND","PURCHASE","PURCHASE_COST","OTHER_IN","OTHER_OUT","OTHER_INCOME","OTHER_EXPENSE"}.Contains(category),
_=>!new[]{"INTEREST","PAWN_OUT","PRINCIPAL_IN","RENT","UTILITIES","SALARY","FUNDING_COST"}.Contains(category)
};
}
namespace JiDangJia.Core;
public static class ManualFinance
{
public static Dictionary<string,string> Details(string major,string direction)=>FinanceAnalytics.Details(major)
.Where(p=>major!="STORE"||direction=="EXPENSE"||p.Key=="STORE_OTHER").ToDictionary();
public static string StoreCategory(string detail,string direction)=>detail=="STORE_OTHER"?direction=="INCOME"?"OTHER_IN":"OTHER_OUT":detail;
public static bool MatchesCategory(string major,string category)=>major switch
{
"PAWN"=>new[]{"INTEREST","STORAGE_FEE","C_FEE","PENALTY_IN","PRINCIPAL_IN","PAWN_OUT","DEAD_SALE","OTHER_IN","OTHER_OUT","OTHER_INCOME","OTHER_EXPENSE"}.Contains(category),
"RECYCLE"=>new[]{"RECYCLE_OUT","RECYCLE_COST","RECOVERY","SALE_IN","SALE_REFUND","STOCK_REFUND","OTHER_IN","OTHER_OUT","OTHER_INCOME","OTHER_EXPENSE"}.Contains(category),
"SALE"=>new[]{"SALE_IN","STOCK_OUT","SALE_REFUND","STOCK_REFUND","PURCHASE","PURCHASE_COST","OTHER_IN","OTHER_OUT","OTHER_INCOME","OTHER_EXPENSE"}.Contains(category),
_=>!new[]{"INTEREST","PAWN_OUT","PRINCIPAL_IN","RENT","UTILITIES","SALARY","FUNDING_COST"}.Contains(category)
};
}