using System; using System.Collections.Generic; using System.Linq; using System.Text; using CY.IDAL; using System.Data.SqlClient; using CY.Model; using System.Data; namespace CY.SQLDAL { public class CategoriesDAL : ICategoriesDAL { #region ICommonDAL 成员 public bool InserModel(Infrastructure.Domain.IAggregateRoot model) { Categories trueModel = model as Categories; if (trueModel != null) { SqlParameter[] parameters = { new SqlParameter("@CategoryName", SqlDbType.NVarChar,15), new SqlParameter("@Description", SqlDbType.NText), new SqlParameter("@Picture", SqlDbType.Image)}; parameters[0].Value = trueModel.CategoryName; parameters[1].Value = trueModel.Description; parameters[2].Value = DBNull.Value; new Database().Query("Categories_ADD", CommandType.StoredProcedure, parameters); return true; } return false; } public bool UpdateModel(Infrastructure.Domain.IAggregateRoot model) { throw new NotImplementedException(); } public bool DeleteModel(Infrastructure.Domain.IAggregateRoot model) { throw new NotImplementedException(); } #endregion #region IGetAllModel 成员 public IEnumerable SelectAllModel(Infrastructure.Query.Query query) { List list = new List(); DataTable dt = new Database().QueryDataTable(query.SPName, CommandType.StoredProcedure, null); Categories model = null; foreach (DataRow dr in dt.Rows) { model = new Categories(); model.CategoryID = int.Parse(dr["CategoryID"].ToString()); model.CategoryName = dr["CategoryName"].ToString(); model.Description = dr["Description"].ToString(); list.Add(model); } return list; } #endregion #region IPaging 成员 public IEnumerable SelectModelPage(Infrastructure.Query.Query query, Infrastructure.Query.Pagination pagination) { List list = new List(); SqlParameter[] parameters = { new SqlParameter("@Columns", SqlDbType.VarChar), new SqlParameter("@TableName", SqlDbType.VarChar), new SqlParameter("@Condition", SqlDbType.VarChar), new SqlParameter("@OrderByRow", SqlDbType.VarChar), new SqlParameter("@OrderByTable", SqlDbType.VarChar), new SqlParameter("@PageNum ", SqlDbType.Int), new SqlParameter("@PageSize", SqlDbType.Int), new SqlParameter("@PageCount", SqlDbType.Int), new SqlParameter("@RecordCount", SqlDbType.Int) }; parameters[0].Value = query.Criteria[0].Value; parameters[1].Value = query.Criteria[1].Value; parameters[2].Value = query.Criteria[2].Value; parameters[3].Value = query.Criteria[3].Value; parameters[4].Value = query.Criteria[4].Value; parameters[5].Value = pagination.PageIndex; parameters[6].Value = pagination.PageSize; parameters[7].Direction = ParameterDirection.Output; parameters[8].Direction = ParameterDirection.Output; DataTable dt = new Database().QueryDataTable("sp_CurrencyPage", CommandType.StoredProcedure, parameters); Categories model = null; if (dt.Rows.Count > 0) { pagination.PageCount = Convert.ToInt32(parameters[6].Value); pagination.RecordCount = Convert.ToInt32(parameters[7].Value); foreach (DataRow dr in dt.Rows) { model = new Categories(); model.CategoryID = int.Parse(dr["CategoryID"].ToString()); model.CategoryName = dr["CategoryName"].ToString(); model.Description = dr["Description"].ToString(); list.Add(model); } } return list; } #endregion #region ICategoriesDAL 成员 public IList GetProductsByCategorieId(int CategorieId) { List list = new List(); Products model = null; SqlParameter[] parameters = { new SqlParameter("@CategorieId", SqlDbType.Int) }; parameters[0].Value = CategorieId; DataTable dt = new Database().QueryDataTable("Products_GetModelByCategorieId", CommandType.StoredProcedure, parameters); foreach (DataRow dr in dt.Rows) { model = new Products(); model.ProductName = dr["ProductName"].ToString(); model.UnitPrice = Convert.ToDecimal(dr["UnitPrice"].ToString()); list.Add(model); } return list; } #endregion } }