继续上面的想法:
如果采用上面所讲得到第五种方式,则设计分工清晰很多,也有利于提高重用性。
1、BusinessConsignController类的方法实现:
2、PayList类的方法实现:
3、PayListDAL类的方法实现:
4、PayEntry类的方法实现:
5、PayEntryDAL类的方法实现:
6、PayItem类的方法实现:
7、PayItemDAL类的方法实现:
如果采用上面所讲得到第五种方式,则设计分工清晰很多,也有利于提高重用性。
1、BusinessConsignController类的方法实现:
1
/// <summary>
2
/// 获取薪酬清单
3
/// </summary>
4
/// <remarks>通过plid获取一个PayList对象</remarks>
5
/// <returns>薪酬清单PayList</returns>
6
public static PayList GetPayList(int plid)
7
{
8
PayList pl = null;
9
try
10
{
11
pl = pl = new PayList(plid);
12
}
13
catch
14
{
15
throw new System.NotImplementedException("创建pl失败了!!");
16
}
17
return pl;
18
19
}
/// <summary>2
/// 获取薪酬清单3
/// </summary>4
/// <remarks>通过plid获取一个PayList对象</remarks>5
/// <returns>薪酬清单PayList</returns>6
public static PayList GetPayList(int plid)7
{8
PayList pl = null;9
try10
{11
pl = pl = new PayList(plid);12
}13
catch14
{15
throw new System.NotImplementedException("创建pl失败了!!");16
}17
return pl;18

19
}2、PayList类的方法实现:
1
/// <summary>
2
/// 构造函数
3
/// </summary>
4
/// <param name="id">Id</param>
5
public PayList(int id)
6
{
7
PayList pl = null;
8
try
9
{
10
pl = PayListDAL.GetPayList(plid);
11
}
12
catch
13
{
14
throw new System.NotImplementedException("创建pl失败了!!");
15
}
16
return pl;
17
}
/// <summary>2
/// 构造函数3
/// </summary>4
/// <param name="id">Id</param>5
public PayList(int id)6
{7
PayList pl = null;8
try9
{10
pl = PayListDAL.GetPayList(plid);11
}12
catch13
{14
throw new System.NotImplementedException("创建pl失败了!!");15
}16
return pl;17
}3、PayListDAL类的方法实现:
1
/// <summary>
2
/// 通过PayListID获取对应的PayList
3
/// </summary>
4
/// <param name="plid">要获取的PayList的id号</param>
5
public static PayList GetPayList(int plid)
6
{
7
Database db = DatabaseFactory.CreateDatabase("SqlServerExternal");
8
string sqlCommand = "GetPayList";
9
DbCommand dbCommand = db.GetStoredProcCommand(sqlCommand);
10
db.AddInParameter(dbCommand, "PayListId", DbType.Int32, plid);
11
12
DataSet dataSet = db.ExecuteDataSet(dbCommand); //通过存储过程获取的三个DataTable
13
DataTable plDataTable = dataSet.Tables[0]; //包含了对应PayList的信息,只有一条记录
14
DataTable pepiDataTable = dataSet.Tables[1]; //包含了对应PayList的所有PayEntry的编号
15
DataTable plcDataTable = dataSet.Tables[2]; //包含了对应PayList的合并信息,也只有编号
16
17
if (plDataTable.Rows.Count != 1)
18
return null;
19
PayList pl = new PayList(); //初始化PayList
20
pl.name = plDataTable.Rows[0]["name"].ToString(); //为PayList所有的属性赋值
21
pl.createDateTime = (DateTime)plDataTable.Rows[0]["CreateDateTime"];
22
pl.payDateTime = (DateTime)plDataTable.Rows[0]["PayDateTime"];
23
pl.owner = OrganizationController.GetPerson((int)plDataTable.Rows[0]["ownerId"]);
24
pl.payTemplate = PayTypeController.GetPayTemplate((int)plDataTable.Rows[0]["PayTemplateId"]);
25
pl.state = (PayListState)plDataTable.Rows[0]["state"];
26
27
PayEntry pe;
28
29
int rowNum = 0;
30
while (rowNum < pepiDataTable.Rows.Count) //此循环为了构造PayList的payEntries属性
31
{
32
pe = new PayEntry((int)pepiDataTable.Rows[rowNum]["PayEntry.ID"]); //初始化PayEntry
33
pl.payEntries.Add(pe.Id, pe); //将新的PayEntry赋予PayList的payEntrys
34
rowNum++;
35
}
36
37
PayListCombine payListCombine;
38
39
for (rowNum = 0; rowNum < plcDataTable.Rows.Count; rowNum++) //此循环为了构造PayList的payListCombines属性
40
{
41
payListCombine = new PayListCombine((int)plcDataTable.Rows[rowNum]["Id"]); //初始化payListCombine
42
pl.payListCombines.Add(payListCombineId, payListCombine); //将新的payListCombine赋予PayList的payListCombines
43
}
44
return pl;
45
46
}
/// <summary>2
/// 通过PayListID获取对应的PayList3
/// </summary>4
/// <param name="plid">要获取的PayList的id号</param>5
public static PayList GetPayList(int plid)6
{7
Database db = DatabaseFactory.CreateDatabase("SqlServerExternal");8
string sqlCommand = "GetPayList";9
DbCommand dbCommand = db.GetStoredProcCommand(sqlCommand);10
db.AddInParameter(dbCommand, "PayListId", DbType.Int32, plid);11
12
DataSet dataSet = db.ExecuteDataSet(dbCommand); //通过存储过程获取的三个DataTable13
DataTable plDataTable = dataSet.Tables[0]; //包含了对应PayList的信息,只有一条记录14
DataTable pepiDataTable = dataSet.Tables[1]; //包含了对应PayList的所有PayEntry的编号15
DataTable plcDataTable = dataSet.Tables[2]; //包含了对应PayList的合并信息,也只有编号16

17
if (plDataTable.Rows.Count != 1)18
return null;19
PayList pl = new PayList(); //初始化PayList20
pl.name = plDataTable.Rows[0]["name"].ToString(); //为PayList所有的属性赋值21
pl.createDateTime = (DateTime)plDataTable.Rows[0]["CreateDateTime"];22
pl.payDateTime = (DateTime)plDataTable.Rows[0]["PayDateTime"];23
pl.owner = OrganizationController.GetPerson((int)plDataTable.Rows[0]["ownerId"]);24
pl.payTemplate = PayTypeController.GetPayTemplate((int)plDataTable.Rows[0]["PayTemplateId"]);25
pl.state = (PayListState)plDataTable.Rows[0]["state"];26

27
PayEntry pe;28

29
int rowNum = 0;30
while (rowNum < pepiDataTable.Rows.Count) //此循环为了构造PayList的payEntries属性31
{32
pe = new PayEntry((int)pepiDataTable.Rows[rowNum]["PayEntry.ID"]); //初始化PayEntry33
pl.payEntries.Add(pe.Id, pe); //将新的PayEntry赋予PayList的payEntrys34
rowNum++;35
}36

37
PayListCombine payListCombine;38

39
for (rowNum = 0; rowNum < plcDataTable.Rows.Count; rowNum++) //此循环为了构造PayList的payListCombines属性40
{41
payListCombine = new PayListCombine((int)plcDataTable.Rows[rowNum]["Id"]); //初始化payListCombine42
pl.payListCombines.Add(payListCombineId, payListCombine); //将新的payListCombine赋予PayList的payListCombines43
}44
return pl;45

46
}4、PayEntry类的方法实现:
1
/// <summary>
2
/// 构造函数
3
/// </summary>
4
/// <param name="id">Id</param>
5
public PayEntry(int id)
6
{
7
PayEntry pe = null;
8
try
9
{
10
pe = PayEntryDAL.GetPayEntry(id);
11
}
12
catch
13
{
14
throw new System.NotImplementedException("创建pe失败了!!");
15
}
16
return pe;
17
}
/// <summary>2
/// 构造函数3
/// </summary>4
/// <param name="id">Id</param>5
public PayEntry(int id)6
{7
PayEntry pe = null;8
try9
{10
pe = PayEntryDAL.GetPayEntry(id);11
}12
catch13
{14
throw new System.NotImplementedException("创建pe失败了!!");15
}16
return pe;17
}5、PayEntryDAL类的方法实现:
1
/// <summary>
2
/// 通过PayEntryID获取对应的PayEntry
3
/// </summary>
4
/// <param name="peid">要获取的PayEntry的id号</param>
5
public static PayEntry GetPayEntry(int peid)
6
{
7
Database db = DatabaseFactory.CreateDatabase("SqlServerExternal");
8
string sqlCommand = "GetPayEntry";
9
DbCommand dbCommand = db.GetStoredProcCommand(sqlCommand);
10
db.AddInParameter(dbCommand, "PayEntryId", DbType.Int32, peid);
11
12
DataSet dataSet = db.ExecuteDataSet(dbCommand); //通过存储过程获取的两个DataTable
13
DataTable peDataTable = dataSet.Tables[0]; //包含了对应PayEntry的信息,只有一条记录
14
DataTable piDataTable = dataSet.Tables[1]; //包含了对应PayEntry的所有PayItem的编号
15
16
if (peDataTable.Rows.Count != 1)
17
return null;
18
PayEntry pe = new PayEntry(); //初始化PayEntry
19
pe.peid = peid; //为PayEntry所有的属性赋值
20
pe.personal = OrganizationController.GetPerson((int)peDataTable.Rows[rowNum]["PersonalId"]);
21
22
PayItem pi;
23
24
int rowNum = 0;
25
while (rowNum < pepiDataTable.Rows.Count) //此循环为了构造PayEntry的payPayItems属性
26
{
27
pi = new PayItem((int)piDataTable.Rows[rowNum]["PayItemID"]); //初始化PayItem
28
pe.payPayItems.Add(pi.Id, pi); //将新的PayItem赋予PayEntry的payPayItems
29
rowNum++;
30
}
31
return pe;
32
33
}
/// <summary>2
/// 通过PayEntryID获取对应的PayEntry3
/// </summary>4
/// <param name="peid">要获取的PayEntry的id号</param>5
public static PayEntry GetPayEntry(int peid)6
{7
Database db = DatabaseFactory.CreateDatabase("SqlServerExternal");8
string sqlCommand = "GetPayEntry";9
DbCommand dbCommand = db.GetStoredProcCommand(sqlCommand);10
db.AddInParameter(dbCommand, "PayEntryId", DbType.Int32, peid);11
12
DataSet dataSet = db.ExecuteDataSet(dbCommand); //通过存储过程获取的两个DataTable13
DataTable peDataTable = dataSet.Tables[0]; //包含了对应PayEntry的信息,只有一条记录14
DataTable piDataTable = dataSet.Tables[1]; //包含了对应PayEntry的所有PayItem的编号15

16
if (peDataTable.Rows.Count != 1)17
return null;18
PayEntry pe = new PayEntry(); //初始化PayEntry19
pe.peid = peid; //为PayEntry所有的属性赋值20
pe.personal = OrganizationController.GetPerson((int)peDataTable.Rows[rowNum]["PersonalId"]);21

22
PayItem pi;23

24
int rowNum = 0;25
while (rowNum < pepiDataTable.Rows.Count) //此循环为了构造PayEntry的payPayItems属性26
{27
pi = new PayItem((int)piDataTable.Rows[rowNum]["PayItemID"]); //初始化PayItem28
pe.payPayItems.Add(pi.Id, pi); //将新的PayItem赋予PayEntry的payPayItems29
rowNum++;30
}31
return pe;32

33
}6、PayItem类的方法实现:
1
/// <summary>
2
/// 构造函数
3
/// </summary>
4
/// <param name="id">Id</param>
5
public PayItem(int id)
6
{
7
PayItem pi = null;
8
try
9
{
10
pi = PayItemDAL.GetPayItem(id);
11
}
12
catch
13
{
14
throw new System.NotImplementedException("创建pi失败了!!");
15
}
16
return pi;
17
}
/// <summary>2
/// 构造函数3
/// </summary>4
/// <param name="id">Id</param>5
public PayItem(int id)6
{7
PayItem pi = null;8
try9
{10
pi = PayItemDAL.GetPayItem(id);11
}12
catch13
{14
throw new System.NotImplementedException("创建pi失败了!!");15
}16
return pi;17
}7、PayItemDAL类的方法实现:
1
/// <summary>
2
/// 通过PayItemID获取对应的PayItem
3
/// </summary>
4
/// <param name="piid">要获取的PayItem的id号</param>
5
public static PayItem GetPayItem(int piid)
6
{
7
Database db = DatabaseFactory.CreateDatabase("SqlServerExternal");
8
string sqlCommand = "GetPayItem";
9
DbCommand dbCommand = db.GetStoredProcCommand(sqlCommand);
10
db.AddInParameter(dbCommand, "PayItemId", DbType.Int32, piid);
11
12
DataSet dataSet = db.ExecuteDataSet(dbCommand); //通过存储过程获取的两个DataTable
13
DataTable piDataTable = dataSet.Tables[0]; //包含了对应PayItem的信息,只有一条记录
14
15
if (piDataTable.Rows.Count != 1)
16
return null;
17
PayItem pi = new PayItem(); //初始化PayItem
18
pi.financedept = (Department)pepiDataTable.Rows[rowNum]["FinanceDeptId"]; //为PayItem的所有属性赋值
19
pi.piid = (int)pepiDataTable.Rows[rowNum]["id"];
20
pi.money = (decimal)pepiDataTable.Rows[rowNum]["money"];
21
pi.project = (Project)pepiDataTable.Rows[rowNum]["projectId"];
22
pi.payItemTemplate = payTemplate.PayItemTemplates[(int)pepiDataTable.Rows[rowNum]["PayItemTemplateId"]];
23
pi.RemarkInfo = pepiDataTable.Rows[rowNum]["RemarkInfo"].ToString();
24
pi.ResponseInfo = (decimal)pepiDataTable.Rows[rowNum]["ResponseInfo"];
25
return pi;
26
27
}
/// <summary>2
/// 通过PayItemID获取对应的PayItem3
/// </summary>4
/// <param name="piid">要获取的PayItem的id号</param>5
public static PayItem GetPayItem(int piid)6
{7
Database db = DatabaseFactory.CreateDatabase("SqlServerExternal");8
string sqlCommand = "GetPayItem";9
DbCommand dbCommand = db.GetStoredProcCommand(sqlCommand);10
db.AddInParameter(dbCommand, "PayItemId", DbType.Int32, piid);11
12
DataSet dataSet = db.ExecuteDataSet(dbCommand); //通过存储过程获取的两个DataTable13
DataTable piDataTable = dataSet.Tables[0]; //包含了对应PayItem的信息,只有一条记录14

15
if (piDataTable.Rows.Count != 1)16
return null;17
PayItem pi = new PayItem(); //初始化PayItem18
pi.financedept = (Department)pepiDataTable.Rows[rowNum]["FinanceDeptId"]; //为PayItem的所有属性赋值19
pi.piid = (int)pepiDataTable.Rows[rowNum]["id"];20
pi.money = (decimal)pepiDataTable.Rows[rowNum]["money"];21
pi.project = (Project)pepiDataTable.Rows[rowNum]["projectId"];22
pi.payItemTemplate = payTemplate.PayItemTemplates[(int)pepiDataTable.Rows[rowNum]["PayItemTemplateId"]];23
pi.RemarkInfo = pepiDataTable.Rows[rowNum]["RemarkInfo"].ToString();24
pi.ResponseInfo = (decimal)pepiDataTable.Rows[rowNum]["ResponseInfo"];25
return pi;26

27
}


浙公网安备 33010602011771号