annotate HowTo/Data/SetSpCommand.cs @ 3:1ef98bd70424

!bug 100 +3h Исправление проблемы BLToolkit + mono 3.4
author cin
date Fri, 22 Aug 2014 17:34:46 +0400
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 using System;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2 using System.Collections.Generic;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 using BLToolkit.Data;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 using BLToolkit.Mapping;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 namespace HowTo.Data
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 using DataAccess;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 public class SetSpCommand
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 // Select a person list.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 public IList<Person> GetPersonList()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 return db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23 ./*[a]*/SetSpCommand/*[/a]*/("Person_SelectAll")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 .ExecuteList<Person>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 public void Test1()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31 IList<Person> list = GetPersonList();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 Assert.AreNotEqual(0, list.Count);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 // Select a person.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38 public Person GetPersonByID1(int id)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 // Pass a parameter using the [b]Parameter[/b] method.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44 return db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 ./*[a]*/SetSpCommand/*[/a]*/("Person_SelectByKey",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46 db./*[a]*/Parameter/*[/a]*/("@id", id))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 .ExecuteObject<Person>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 public Person GetPersonByID2(int id)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 // Pass a parameter using the [b]params[/b] parameter of the SetSpCommand method.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57 return db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 ./*[a]*/SetSpCommand/*[/a]*/("Person_SelectByKey", /*[a]*/id/*[/a]*/)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
59 .ExecuteObject<Person>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
60 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
61 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
62
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
63 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
64 public void Test2()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
65 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
66 Person person = GetPersonByID1(1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
67 Assert.IsNotNull(person);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
68
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
69 person = GetPersonByID2(1);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
70 Assert.IsNotNull(person);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
71 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
72
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
73 // Insert, Update, and Delete a person.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
74 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
75 public Person GetPersonByID(DbManager db, int id)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
76 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
77 return db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
78 ./*[a]*/SetSpCommand/*[/a]*/("Person_SelectByKey", /*[a]*/id/*[/a]*/)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
79 .ExecuteObject<Person>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
80 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
81
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
82 public Person CreatePerson(DbManager db)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
83 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
84 int id = db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
85 ./*[a]*/SetSpCommand/*[/a]*/("Person_Insert",
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
86 db./*[a]*/Parameter/*[/a]*/("@LastName", "Frog"),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
87 db./*[a]*/Parameter/*[/a]*/("@MiddleName", null),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
88 db./*[a]*/Parameter/*[/a]*/("@FirstName", "Crazy"),
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
89 db./*[a]*/Parameter/*[/a]*/("@Gender", Map.EnumToValue(Gender.Male)))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
90 .ExecuteScalar<int>();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
91
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
92 return GetPersonByID(db, id);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
93 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
94
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
95 public Person UpdatePerson(DbManager db, Person person)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
96 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
97 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
98 ./*[a]*/SetSpCommand/*[/a]*/("Person_Update", db./*[a]*/CreateParameters/*[/a]*/(person))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
99 .ExecuteNonQuery();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
100
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
101 return GetPersonByID(db, person.ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
102 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
103
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
104 public Person DeletePerson(DbManager db, Person person)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
105 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
106 db
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
107 ./*[a]*/SetSpCommand/*[/a]*/("Person_Delete", /*[a]*/person.ID/*[/a]*/)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
108 .ExecuteNonQuery();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
109
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
110 return GetPersonByID(db, person.ID);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
111 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
112
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
113 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
114 public void Test3()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
115 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
116 using (DbManager db = new DbManager())
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
117 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
118 db.BeginTransaction();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
119
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
120 // Insert.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
121 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
122 Person person = CreatePerson(db);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
123
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
124 Assert.IsNotNull(person);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
125
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
126 // Update.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
127 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
128 Assert.AreEqual(Gender.Male, person.Gender);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
129
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
130 person.Gender = Gender.Female;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
131
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
132 person = UpdatePerson(db, person);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
133
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
134 Assert.AreEqual(Gender.Female, person.Gender);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
135
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
136 // Delete.
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
137 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
138 person = DeletePerson(db, person);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
139
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
140 Assert.IsNull(person);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
141
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
142 db.CommitTransaction();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
143 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
144 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
145 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
146 }