1 using System;
2 using System.Data;
3 using System.Data.SqlClient;
4 using Microsoft.ApplicationBlocks.Data;
5
6 namespace EasyAssets.DAC
7 {
8 /// <summary>
9 /// Summary description for Site.
10 /// </summary>
11 public class Site
12 {
13 #region private members
14
15 //property accessors
16 private int _siteid = -1;
17 private string _sitedescription;
18
19 //Database key
20 private string _connectstring;
21
22 #endregion private members
23
24 #region Properties
25
26 public int SiteID
27 {
28 get
29 {
30 return _siteid;
31 }
32 set
33 {
34 _siteid = value;
35 }
36 }
37
38 public string SiteDescription
39 {
40 get
41 {
42 return _sitedescription;
43 }
44 set
45 {
46 _sitedescription = value;
47 }
48 }
49
50 #endregion Properties
51
52
53 public Site()
54 {
55
56 }
57
58 public Site(string connectstring)
59 {
60 _connectstring = connectstring;
61 }
62
63 /// <summary>
64 /// Loads a site by id
65 /// </summary>
66 /// <param name="id">pk</param>
67 /// <param name="connectstring">database connection string</param>
68 public Site(int id, string connectstring)
69 {
70 _connectstring = connectstring;
71
72 SqlParameter[] sqlparams = new SqlParameter[1];
73
74 SqlParameter param = new SqlParameter("@SiteID", SqlDbType.Int);
75 param.Value = id;
76 sqlparams[0] = param;
77
78 using(SqlDataReader dr = SqlHelper.ExecuteReader(_connectstring, "ea_site_get", sqlparams))
79 {
80 if(dr.Read())
81 {
82 _siteid = dr["SiteID"] == DBNull.Value ? -1 : (int)dr["SiteID"];
83 _sitedescription = dr["SiteDescription"] == DBNull.Value ? "" : dr["SiteDescription"].ToString();
84 }
85 else
86 throw new Exception("Site ID not found!");
87 }
88 }
89
90 /// <summary>
91 /// Does insert if key is -1 (default)
92 /// Updates if key is not default.
93 /// </summary>
94 public void Save()
95 {
96 if(_siteid == -1)
97 {
98 //Do Insert
99 SqlParameter[] sqlparams = new SqlParameter[1];
100
101 SqlParameter param = new SqlParameter("@SiteDescription", SqlDbType.NVarChar);
102 if(_sitedescription != "") param.Value = _sitedescription.Replace("'","''");
103 else param.Value = DBNull.Value;
104 sqlparams[0] = param;
105
106 if(SqlHelper.ExecuteNonQuery(_connectstring, "ea_site_insert", sqlparams) == -1)
107 throw new Exception("Site create failed!");
108 }
109 else
110 {
111 //Do Update
112 SqlParameter[] sqlparams = new SqlParameter[2];
113
114 SqlParameter param = new SqlParameter("@SiteID", SqlDbType.Int);
115 if(_siteid != -1) param.Value = _siteid;
116 else param.Value = DBNull.Value;
117 sqlparams[0] = param;
118
119 param = new SqlParameter("@SiteDescription", SqlDbType.NVarChar);
120 if(_sitedescription != "") param.Value = _sitedescription.Replace("'","''");
121 else param.Value = DBNull.Value;
122 sqlparams[1] = param;
123
124
125
126 if(SqlHelper.ExecuteNonQuery(_connectstring, "ea_site_update", sqlparams) == -1)
127 throw new Exception("Site update failed!");
128 }
129 }
130
131 public void Delete()
132 {
133 SqlParameter[] sqlparams = new SqlParameter[1];
134
135 SqlParameter param = new SqlParameter("@SiteID", SqlDbType.Int);
136 param.Value = _siteid;
137 sqlparams[0] = param;
138
139 if(SqlHelper.ExecuteNonQuery(_connectstring, "ea_site_delete", sqlparams) == -1)
140 throw new Exception("Site delete failed!");
141 }
142 }
143 }