亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? form1.cs

?? 國(guó)人開(kāi)發(fā)的電子錢(qián)包
?? CS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):

		public void RegisterChangeListener(IMoneyDbChangeListener listener)
		{
			this.ChangeListners.Add(listener);
		}

		public void RemoveChangeListener(IMoneyDbChangeListener listener)
		{
			this.ChangeListners.Remove(listener);
		}

		private void FireAccountChangeEvent()
		{
			for(int i=0;i<this.ChangeListners.Count;i++)
			{
				IMoneyDbChangeListener listener=this.ChangeListners[i] as IMoneyDbChangeListener;
				if(listener!=null)
				{
					listener.OnAccountChanged();
				}
			}
		}

		private void FireBalanceChangeEvent()
		{
			for(int i=0;i<this.ChangeListners.Count;i++)
			{
				IMoneyDbChangeListener listener=this.ChangeListners[i] as IMoneyDbChangeListener;
				if(listener!=null)
				{
					listener.OnBalanceChanged();
				}
			}
		}

		private void FireTransactionChangeEvent()
		{
			for(int i=0;i<this.ChangeListners.Count;i++)
			{
				IMoneyDbChangeListener listener=this.ChangeListners[i] as IMoneyDbChangeListener;
				if(listener!=null)
				{
					listener.OnTransactionChanged();
				}
			}
		}

		public void CommitToFile(string filename)
		{
			if(this.GetChangedFlag()!=true)
			{
				return;
			}
			lock(this)
			{
				ds.WriteXml(filename);
			}
			this.ResetChangedFlag();
		}

		public void CommitToFile()
		{
			this.CommitToFile(this.sourcefile);
		}

		public void FillTransactionTypes()
		{
			lock(this)
			{
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Dining Out"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Food"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Newspapger & Mag"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Clothing"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Movie/Video"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Sports"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Book"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Automobile"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Night Life"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Inventory Purchase"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Job Expense"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Cell Phone"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Cable TV"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Electricity"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Mortege"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Gas"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Telephone"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"House Rent"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Insuarance"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Water"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Computer"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Education"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Gift"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"House Cleaning"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Healthcare"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Pet"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Vacation"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Withdrawal"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Unknown Expense"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Investment Income"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Salary"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Reimbursement"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Deposit"});
				ds.Tables["TransactionType"].Rows.Add(new object[]{"Unknown Income"});
				this.SetChangedFlag();
			}
		}
		
		public void FillSampleData()
		{
			this.FillTransactionTypes();

			ds.Tables["Accounts"].Rows.Add(new object[]{0,"Cash",150.5});
			ds.Tables["Accounts"].Rows.Add(new object[]{1,"CMB Credit Card",-3200});

			ds.Tables["Transaction"].Rows.Add(new object[]{0,"Food",0,-22,System.DateTime.Now,"for lunch"});
			ds.Tables["Transaction"].Rows.Add(new object[]{1,"Book",0,-10.5,System.DateTime.Now,"magazine"});
			ds.Tables["Transaction"].Rows.Add(new object[]{2,"Unknown Expense",1,-698,System.DateTime.Now,"jean"});
			ds.Tables["Transaction"].Rows.Add(new object[]{3,"Food",1,-38,System.DateTime.Now,"dinner"});
			ds.Tables["Transaction"].Rows.Add(new object[]{4,"Salary",0,10200,System.DateTime.Now,"Salary"});
		}

		private int GetLatestTransactionID()
		{
			int rowcount=ds.Tables["Transaction"].Rows.Count;
			if(rowcount==0)
			{
				return -1;
			}
			else
			{
				return System.Int32.Parse(ds.Tables["Transaction"].Rows[rowcount-1]["ID"].ToString());
			}
		}

		private int GetLatestAccountID()
		{
			int rowcount=ds.Tables["Accounts"].Rows.Count;
			if(rowcount==0)
			{
				return -1;
			}
			else
			{
				return System.Int32.Parse(ds.Tables["Accounts"].Rows[rowcount-1]["AccountID"].ToString());
			}
			
		}

		public void NewTransaction(string Type,int Account,double Amount,System.DateTime Date,string Note)
		{
			lock(this)
			{
				ds.Tables["Transaction"].Rows.Add(new object[]{this.GetLatestTransactionID()+1,Type,Account,Amount,Date,Note});
				this.SetBalance(Account,this.GetBalance(Account)+Amount);
				this.FireTransactionChangeEvent();
				this.SetChangedFlag();
			}
		}

		public double GetBalance(int AccountID)
		{
			DataRow[] drs=ds.Tables["Accounts"].Select("AccountID="+AccountID);
			if(drs.Length>0)
			{
				return System.Double.Parse(drs[0]["Balance"].ToString());
			}
			else
				return 0;
		}

		public void SetBalance(int AccountID,double newvalue)
		{
			DataRow[] drs=ds.Tables["Accounts"].Select("AccountID="+AccountID);
			if(drs.Length>0)
			{
				drs[0]["Balance"]=newvalue;
			}
			this.FireBalanceChangeEvent();
		}

		public void DeleteTransaction(int TransactionID)
		{
			lock(this)
			{
				DataRow[] drs=ds.Tables["Transaction"].Select("ID="+TransactionID);
				foreach(DataRow dr in drs)
				{
					double amount=System.Double.Parse(dr["Amount"].ToString());
					int accountid=System.Int32.Parse(dr["Account"].ToString());
					this.SetBalance(accountid,this.GetBalance(accountid)-amount);
					ds.Tables["Transaction"].Rows.Remove(dr);
				}
				this.FireTransactionChangeEvent();
				this.SetChangedFlag();
			}
		}

		public void ClearTransactions(int AccountID)
		{
			lock(this)
			{
				DataRow[] drs=ds.Tables["Transaction"].Select("Account="+AccountID);
				foreach(DataRow dr in drs)
				{
					ds.Tables["Transaction"].Rows.Remove(dr);
				}
				this.FireTransactionChangeEvent();
				this.SetChangedFlag();
			}
		}

		public int GetAccountId(string AccountName)
		{
			DataRow[] drs=ds.Tables["Accounts"].Select("Name='"+AccountName+"'");
			foreach(DataRow dr in drs)
			{
				return System.Int32.Parse(dr["AccountID"].ToString());
			}
			return -1;
		}

		public void NewAccount(string Name,double initBalance)
		{
			lock(this)
			{
				ds.Tables["Accounts"].Rows.Add(new object[]{this.GetLatestAccountID()+1,Name,initBalance});
				this.FireAccountChangeEvent();
				this.SetChangedFlag();
			}
		}

		public void DeleteAccount(string Name)
		{
			int id=this.GetAccountId(Name);
			if(id!=-1)
			{
				this.DeleteAccount(id);
			}
		}

		public void DeleteAccount(int AccountID)
		{
			lock(this)
			{
				DataRow[] drs=ds.Tables["Accounts"].Select("AccountID="+AccountID+"");
				foreach(DataRow dr in drs)
				{
					DataRow[] trans=ds.Tables["Transaction"].Select("Account="+dr["AccountID"].ToString());
					foreach(DataRow transactionRow in trans)
					{
						ds.Tables["Transaction"].Rows.Remove(transactionRow);
					}
				}
				ds.Tables["Accounts"].Rows.Remove(ds.Tables["Accounts"].Rows.Find(AccountID));
				this.FireAccountChangeEvent();
				this.SetChangedFlag();
			}
		}

	
		public DataTable GetAccounts()
		{
			return ds.Tables["Accounts"];
		}

		public DataRow[] GetTransactions(int AccountID)
		{
			return ds.Tables["Transaction"].Select("Account="+AccountID);
		}

		public DataRow GetTransactionInfo(int TransactionID)
		{
			DataRow[] rows=ds.Tables["Transaction"].Select("ID="+TransactionID);
			if(rows.Length>0)
			{
				return rows[0];
			}
			else
			{
				return null;
			}
		}

		public string[] GetTypes()
		{
			string[] types=new string[ds.Tables["TransactionType"].Rows.Count];
			for(int i=0;i<ds.Tables["TransactionType"].Rows.Count;i++)
			{
				types[i]=ds.Tables["TransactionType"].Rows[i]["TypeName"].ToString();
			}
			return types;
		}

		public void Transfer(int FromAccount,int ToAccount,double Amount)
		{
			this.NewTransaction("Withdrawal",FromAccount,0-Amount,System.DateTime.Now,"transfer "+FromAccount+"->"+ToAccount);
			this.NewTransaction("Deposit",ToAccount,Amount,System.DateTime.Now,"transfer "+FromAccount+"->"+ToAccount);
		}

		public bool SetAccountName(string originalName,string newName)
		{
			lock(this)
			{
				DataRow[] rows=ds.Tables["Accounts"].Select("Name='"+newName+"'");
				if(rows.Length>0)
				{
					return false;
				}

				DataRow[] drs=ds.Tables["Accounts"].Select("Name='"+originalName+"'");
				foreach(DataRow row in drs)
				{
					row["Name"]=newName;
				}
				this.FireAccountChangeEvent();
				this.SetChangedFlag();
				return true;
			}
		}
	}
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩中文精品| 4438x亚洲最大成人网| 亚洲综合色网站| 日韩欧美国产一区二区三区| 成人av在线播放网址| 午夜精品福利一区二区三区蜜桃| 久久久五月婷婷| 欧美视频一区二区三区四区| 国产98色在线|日韩| 日韩精品每日更新| 中文字幕综合网| 国产亚洲精品中文字幕| 欧美乱熟臀69xxxxxx| 91亚洲精品久久久蜜桃| 国产原创一区二区| 免费成人在线观看| 亚洲国产中文字幕在线视频综合 | 国产精品18久久久久久久久| 亚洲一二三四在线观看| 亚洲视频一二区| 国产网站一区二区| 精品国产精品一区二区夜夜嗨| 欧美影视一区二区三区| 成人激情开心网| 国产高清成人在线| 久久狠狠亚洲综合| 美女被吸乳得到大胸91| 亚洲成在人线在线播放| 亚洲美女偷拍久久| 国产在线麻豆精品观看| 午夜久久久久久久久久一区二区| 亚洲激情欧美激情| 亚洲欧美偷拍另类a∨色屁股| 国产日韩av一区| 国产亚洲成av人在线观看导航| 精品少妇一区二区| 欧美r级电影在线观看| 欧美一区二区美女| 日韩三级免费观看| 日韩视频在线永久播放| 日韩欧美在线网站| 日韩一级大片在线观看| 日韩美女主播在线视频一区二区三区 | 欧美肥妇bbw| 在线免费视频一区二区| 欧美亚洲日本国产| 欧美精品在线视频| 日韩欧美成人激情| 欧美精品一区二区三| 欧美精品一区二区在线播放| 欧美电视剧免费全集观看| 日韩欧美综合一区| 久久新电视剧免费观看| 久久这里只精品最新地址| 久久综合久色欧美综合狠狠| 久久精品在线观看| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品伦一区二区三级视频| 国产精品伦一区| 亚洲激情一二三区| 亚洲成人免费视频| 美女国产一区二区三区| 国产成人免费视频精品含羞草妖精 | 欧美大胆人体bbbb| 亚洲成av人片一区二区| 日韩高清电影一区| 蜜桃91丨九色丨蝌蚪91桃色| 国产一区二区在线观看视频| 国产成人8x视频一区二区| 91色|porny| 欧美精品在线观看播放| 久久久久久久久久久黄色| 国产精品久久久久aaaa樱花| 亚洲福利一区二区| 国产综合久久久久久鬼色| 成人免费毛片高清视频| 欧美三级一区二区| 久久一区二区三区四区| 亚洲精品一二三| 蜜桃av一区二区| 91麻豆国产香蕉久久精品| 欧美电视剧免费观看| 亚洲欧美一区二区三区极速播放 | 国产色一区二区| 一区二区高清在线| 国产最新精品精品你懂的| jlzzjlzz亚洲女人18| 欧美一区二区三区在| 国产精品蜜臀在线观看| 日韩一区精品字幕| 99麻豆久久久国产精品免费| 欧美高清激情brazzers| 国产精品电影一区二区三区| 日韩av成人高清| av成人老司机| 日韩欧美久久久| 一区二区三区毛片| 国产乱码精品一区二区三| 欧美羞羞免费网站| 国产精品久久看| 麻豆精品一区二区| 欧美偷拍一区二区| 亚洲丝袜美腿综合| 国产二区国产一区在线观看| 欧美久久久影院| 亚洲欧洲精品一区二区三区| 黑人巨大精品欧美一区| 欧美日韩免费一区二区三区| 国产精品乱人伦| 国内外成人在线| 日韩写真欧美这视频| 一区二区三区四区av| 成人美女在线观看| 久久久久久麻豆| 欧美a级一区二区| 欧美日韩国产一区| 樱桃国产成人精品视频| 成人avav影音| 欧美激情在线免费观看| 国模套图日韩精品一区二区| 91精品国产综合久久久久久久| 伊人夜夜躁av伊人久久| 成人动漫视频在线| 中文字幕不卡在线| 国产91露脸合集magnet| 久久夜色精品国产噜噜av| 免费成人结看片| 欧美顶级少妇做爰| 亚洲第一成年网| 欧美日韩一级二级| 亚洲国产精品精华液网站| 91精品福利在线| 亚洲精品免费视频| 在线日韩av片| 亚洲一区精品在线| 精品视频1区2区| 亚洲福利国产精品| 欧美日本免费一区二区三区| 亚洲成人在线观看视频| 欧美日韩视频在线观看一区二区三区| 亚洲黄色免费电影| 欧美在线999| 亚洲国产精品尤物yw在线观看| 欧美在线观看一区| 99久久综合精品| 综合久久综合久久| 色婷婷综合久久久中文字幕| 一区二区在线观看免费视频播放| 94色蜜桃网一区二区三区| 亚洲乱码日产精品bd| 欧美唯美清纯偷拍| 日韩国产精品大片| 2021中文字幕一区亚洲| 国产成人午夜视频| 亚洲日本va午夜在线影院| 色综合天天综合狠狠| 亚洲综合色噜噜狠狠| 欧美美女喷水视频| 精品写真视频在线观看| 国产欧美精品区一区二区三区| aaa亚洲精品| 亚洲高清免费视频| 精品国产伦一区二区三区观看方式 | 欧美精品一区二区在线观看| 国产精品99久久不卡二区| 中文字幕欧美一| 欧美日韩dvd在线观看| 激情久久久久久久久久久久久久久久| 国产日韩欧美综合在线| 日本精品免费观看高清观看| 日韩国产精品大片| 中国色在线观看另类| 在线观看一区二区视频| 精油按摩中文字幕久久| 国产精品国产自产拍在线| 欧美日韩精品一区二区三区四区 | 免播放器亚洲一区| 国产亚洲午夜高清国产拍精品| 91碰在线视频| 久久se精品一区二区| 成人欧美一区二区三区白人| 777亚洲妇女| 成人丝袜高跟foot| 五月天一区二区| 欧美国产精品中文字幕| 欧美精品一卡二卡| www.亚洲人| 秋霞av亚洲一区二区三| 亚洲丝袜自拍清纯另类| 精品国产一区二区三区四区四| 日本高清不卡视频| 国产精品一区二区不卡| 五月天亚洲精品| 国产精品伦理在线| 精品国产sm最大网站免费看| 欧美性受xxxx黑人xyx性爽| 成人在线视频一区| 毛片一区二区三区| 亚洲国产一区二区a毛片| 亚洲国产电影在线观看|