using System; using System.Collections.Generic; using System.Data.Common; using System.Linq; using System.Text; using CB.Entity; using CB.Interface.Infrastructure; using System.Data; using CB.Common; namespace CB.Data.SqlServer { public class TopicClassManage : Repository, ITopicClassService { public TopicClassManage(string interfaceId) : base(interfaceId) { } public override bool Save(TopicClassInfo entity) { DbParameter[] pars ={ DbHelper.MakeInParam(InterfaceId,"@Cid",(DbType)SqlDbType.Int,4,entity.Cid), DbHelper.MakeInParam(InterfaceId,"@Name",(DbType)SqlDbType.NVarChar,100,entity.Name), DbHelper.MakeInParam(InterfaceId,"@pid",(DbType)SqlDbType.Int,4,entity.ParentId), DbHelper.MakeInParam(InterfaceId,"@rid",(DbType)SqlDbType.Int,4,entity.RootId), DbHelper.MakeInParam(InterfaceId,"@depth",(DbType)SqlDbType.Int,4,(int)entity.Depth), }; return TypeConverter.ObjectToInt(DbHelper.ExecuteScalar(InterfaceId,CommandType.StoredProcedure, "usp_TopClass_save", pars)) > 0; } public override bool Update(TopicClassInfo entity) { throw new NotImplementedException(); } public override bool Delete(int id) { return DbHelper.ExecuteNonQuery(InterfaceId, CommandType.Text, "DELETE FROM [DT_TopicClass] WHERE [Cid]="+id.ToString()) > 0; } public override TopicClassInfo Get(TKey key) { TopicClassInfo Entity = null; DbParameter[] para = { DbHelper.MakeInParam(InterfaceId,"@Id",(DbType)SqlDbType.Int,4,key) }; using (IDataReader reader = DbHelper.ExecuteReader(InterfaceId,CommandType.Text, "SELECT TOP 1 [Cid],[Name],[ParentId],[RootId],[Depth],[Addtime] FROM [DT_TopicClass] WHERE Cid= @Id", para)) { if (reader.Read()) { Entity = LoadEntity(reader); } reader.Dispose(); } return Entity; } public override IList ToList() { IList list = new List(); StringBuilder strSql = new StringBuilder(); strSql.Append("SELECT [Cid],[Name],[ParentId],[RootId],[Depth],[Addtime]"); strSql.Append(" FROM dbo.DT_TopicClass ORDER BY Cid ASC"); using (DataTable dt = DbHelper.ExecuteDatatable(InterfaceId,strSql.ToString())) { if (null != dt && 0 < dt.Rows.Count) { foreach (DataRow dr in dt.Rows) { list.Add(LoadEntity(dr)); } } dt.Dispose(); } return list; } public override IList ToList(TopicClassInfo entity) { IList list = new List(); StringBuilder strSql = new StringBuilder(); strSql.Append("SELECT [Cid],[Name],[ParentId],[RootId],[Depth],[Addtime]"); strSql.Append(" FROM dbo.DT_TopicClass where 1=1 ORDER BY Cid ASC"); using (DataTable dt = DbHelper.ExecuteDatatable(InterfaceId,strSql.ToString())) { if (null != dt && 0 < dt.Rows.Count) { foreach (DataRow dr in dt.Rows) { list.Add(LoadEntity(dr)); } } dt.Dispose(); } return list; } public override IList ToPaging(TopicClassInfo entity, int pageSize, int pageIndex, out int recordCount) { string where = "1=1 "; if (!string.IsNullOrEmpty(entity.Name)) { where += "and [Name] like '%" + entity.Name + "%'"; } recordCount = 0; string field = "[Cid],[Name],[ParentId],[RootId],[Depth],[Addtime]" , orderField = "Cid" , tableName = "DT_TopicClass"; DbParameter[] para = { DbHelper.MakeInParam(InterfaceId,"@pageSize",(DbType)SqlDbType.Int,4,pageSize), DbHelper.MakeInParam(InterfaceId,"@page",(DbType)SqlDbType.Int,4,pageIndex), DbHelper.MakeInParam(InterfaceId,"@tableName",(DbType)SqlDbType.NVarChar,500,tableName), DbHelper.MakeInParam(InterfaceId,"@field",(DbType)SqlDbType.NVarChar,1000,field), DbHelper.MakeInParam(InterfaceId,"@orderField",(DbType)SqlDbType.NVarChar,50,orderField), DbHelper.MakeInParam(InterfaceId,"@where",(DbType)SqlDbType.NVarChar,2000,where) }; IList list = new List(); using (IDataReader reader = DbHelper.ExecuteReader(InterfaceId,CommandType.StoredProcedure, "usp_st_page", para)) { while (reader.Read()) { list.Add(LoadEntity(reader)); } if (reader.NextResult() && reader.Read()) { recordCount = reader.GetInt32(0); } reader.Dispose(); } return list; } protected override TopicClassInfo LoadEntity(DataRow dr) { return new TopicClassInfo { Cid = TypeConverter.ObjectToInt(dr["Cid"]), Name = dr["Name"].ToString().Trim(), ParentId = TypeConverter.ObjectToInt(dr["ParentId"]), RootId = TypeConverter.ObjectToInt(dr["RootId"]), Depth = TypeConverter.ObjectToInt(dr["Depth"]), Addtime = TypeConverter.ObjectToDateTime(dr["Addtime"], DateTime.MinValue), }; } protected override TopicClassInfo LoadEntity(IDataReader reader) { return new TopicClassInfo { Cid = TypeConverter.ObjectToInt(reader["Cid"]), Name = reader["Name"].ToString().Trim(), ParentId = TypeConverter.ObjectToInt(reader["ParentId"]), RootId = TypeConverter.ObjectToInt(reader["RootId"]), Depth = TypeConverter.ObjectToInt(reader["Depth"]), Addtime = TypeConverter.ObjectToDateTime(reader["Addtime"], DateTime.MinValue), }; } } }