using System;
using System.Collections.Generic; 
using System.Data;
using DSWeb.SoftMng.Model;
// ReSharper disable once CheckNamespace
namespace DSWeb.SoftMng.BLL {
	 	//user
		public partial class userBLL
	{ 
		private readonly DAL.userDAL dal=new DAL.userDAL();
		#region  Method
		/// <summary>
		/// 是否存在该记录
		/// </summary>
		public bool Exists(string GID)
		{
			return dal.Exists(GID);
		}
		/// <summary>
		/// 增加一条数据
		/// </summary>
		public int  Add(user model)
		{
			return dal.Add(model);			
		}
		/// <summary>
		/// 更新一条数据
		/// </summary>
		public int Update(user model)
		{
			return dal.Update(model);
		}
		/// <summary>
		/// 删除一条数据
		/// </summary>
		public int Delete(string GID)
		{
			return dal.Delete(GID);
		}
				/// <summary>
		/// 按条件批量删除(有风险)
		/// </summary>
		public int DeleteListWhere(string strWhere)
		{
		  	return dal.DeleteListWhere(strWhere);
		}
		/// <summary>
		/// 得到一个对象实体
		/// </summary>
		public user GetModel(string GID)
		{
			DataSet ds = dal.GetModel(GID);
			if(ds.Tables.Count> 0){
			    var dt = ds.Tables[0];
				if(dt.Rows.Count>0){
				    var dr = dt.Rows[0];
					return DataRowToModel(dr);
				}
				return null;
			}
			return null;
		}
		/// <summary>
		/// 获得数据列表
		/// </summary>
		public DataSet GetList(string strWhere)
		{
			return dal.GetList(strWhere);
		}
		/// <summary>
		/// 获得前几行数据
		/// </summary>
		public DataSet GetList(int Top,string strWhere,string filedOrder)
		{
			return dal.GetList(Top,strWhere,filedOrder);
		}
		/// <summary>
		/// 获得数据列表
		/// </summary>
		public List<user> GetModelList(string strWhere)
		{
			DataSet ds = dal.GetList(strWhere);
			return DataTableToList(ds.Tables[0]);
		}
		/// <summary>
		/// 获得数据列表
		/// </summary>
		public List<user> DataTableToList(DataTable dt)
		{
			List<user> modelList = new List<user>();
			int rowsCount = dt.Rows.Count;
			if (rowsCount > 0)
			{
				for (int n = 0; n < rowsCount; n++)
				{
					var model = DataRowToModel(dt.Rows[n]);
					modelList.Add(model);
				}
			}
			return modelList;
		}
		/// <summary>
		/// 获得数据
		/// </summary>
		public user DataRowToModel(DataRow dr)
		{
		   var model = new user();					
									model.GID= dr["GID"].ToString();
															model.USERNAME= dr["USERNAME"].ToString();
															model.CODENAME= dr["CODENAME"].ToString();
															model.PASSWORD= dr["PASSWORD"].ToString();
															model.SHOWNAME= dr["SHOWNAME"].ToString();
													if(dr["ENROLLTIME"].ToString()!="")
		{
			model.ENROLLTIME=DateTime.Parse(dr["ENROLLTIME"].ToString());
		}
																	model.CREATEUSER= dr["CREATEUSER"].ToString();
															model.MODIFIEDUSER= dr["MODIFIEDUSER"].ToString();
													if(dr["MODIFIEDTIME"].ToString()!="")
		{
			model.MODIFIEDTIME=DateTime.Parse(dr["MODIFIEDTIME"].ToString());
		}
																							if(dr["ISDELETED"].ToString()!="")
		{
			if((dr["ISDELETED"].ToString()=="1")||(dr["ISDELETED"].ToString().ToLower()=="true"))
			{
			model.ISDELETED= true;
			}
			else
			{
			model.ISDELETED= false;
			}
		}
															if(dr["ISDISABLE"].ToString()!="")
		{
			if((dr["ISDISABLE"].ToString()=="1")||(dr["ISDISABLE"].ToString().ToLower()=="true"))
			{
			model.ISDISABLE= true;
			}
			else
			{
			model.ISDISABLE= false;
			}
		}
									model.DELETEUSER= dr["DELETEUSER"].ToString();
													if(dr["DELETETIME"].ToString()!="")
		{
			model.DELETETIME=DateTime.Parse(dr["DELETETIME"].ToString());
		}
																	model.NOCODE= dr["NOCODE"].ToString();
															model.OPENID= dr["OPENID"].ToString();
															model.WeChatAccount= dr["WeChatAccount"].ToString();
											
			return model;
		}
		/// <summary>
		/// 获得数据列表
		/// </summary>
		public DataSet GetAllList()
		{
			return GetList("");
		}
		/// <summary>
        /// 分页获取数据列表
        /// </summary>
        /// <param name="startIndex"></param>
        /// <param name="limit"></param>
        /// <param name="strWhere"></param>
        /// <param name="orderby"></param>
        /// <returns></returns>
        public List<user> GetModelList(int startIndex, int limit, string strWhere, string orderby)
        {
            int endIndex = startIndex + limit;
        	DataSet ds = dal.GetListByPage(strWhere,orderby,startIndex,endIndex);
        	return DataTableToList(ds.Tables[0]);
        }
		/// <summary>
		/// 获取记录总数
		/// </summary>
		public int GetRecordCount(string strWhere)
		{
			return dal.GetRecordCount(strWhere);
		}
        #endregion
	}
}