using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CallCenterApi.BLL
{
    /// <summary>
	/// UserAccount
	/// </summary>
	public partial class UserAccount
    {
        private readonly DAL.UserAccount dal = new DAL.UserAccount();
        public UserAccount()
        { }
        #region  Method

        /// <summary>
        /// 增加一条数据
        /// </summary>
        public bool Add(Model.UserAccount model)
        {
            return dal.Add(model);
        }

        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(Model.UserAccount model)
        {
            return dal.Update(model);
        }

        /// <summary>
        /// 删除一条数据
        /// </summary>
        public bool Delete()
        {
            //该表无主键信息，请自定义主键/条件字段
            return dal.Delete();
        }

        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public Model.UserAccount GetModel()
        {
            //该表无主键信息，请自定义主键/条件字段
            return dal.GetModel();
        }

        ///// <summary>
        ///// 得到一个对象实体，从缓存中
        ///// </summary>
        //public Maticsoft.Model.UserAccount GetModelByCache()
        //{
        //    //该表无主键信息，请自定义主键/条件字段
        //    string CacheKey = "UserAccountModel-" ;
        //    object objModel = Maticsoft.Common.DataCache.GetCache(CacheKey);
        //    if (objModel == null)
        //    {
        //        try
        //        {
        //            objModel = dal.GetModel();
        //            if (objModel != null)
        //            {
        //                int ModelCache = Maticsoft.Common.ConfigHelper.GetConfigInt("ModelCache");
        //                Maticsoft.Common.DataCache.SetCache(CacheKey, objModel, DateTime.Now.AddMinutes(ModelCache), TimeSpan.Zero);
        //            }
        //        }
        //        catch{}
        //    }
        //    return (Maticsoft.Model.UserAccount)objModel;
        //}

        /// <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<Model.UserAccount> GetModelList(string strWhere)
        {
            DataSet ds = dal.GetList(strWhere);
            return DataTableToList(ds.Tables[0]);
        }
        /// <summary>
        /// 获得数据列表
        /// </summary>
        public List<Model.UserAccount> DataTableToList(DataTable dt)
        {
            List<Model.UserAccount> modelList = new List<Model.UserAccount>();
            int rowsCount = dt.Rows.Count;
            if (rowsCount > 0)
            {
                Model.UserAccount model;
                for (int n = 0; n < rowsCount; n++)
                {
                    model = new Model.UserAccount();
                    if (dt.Rows[n]["F_UserId"] != null && dt.Rows[n]["F_UserId"].ToString() != "")
                    {
                        model.F_UserId = int.Parse(dt.Rows[n]["F_UserId"].ToString());
                    }
                    if (dt.Rows[n]["F_UserCode"] != null && dt.Rows[n]["F_UserCode"].ToString() != "")
                    {
                        model.F_UserCode = dt.Rows[n]["F_UserCode"].ToString();
                    }
                    if (dt.Rows[n]["F_Password"] != null && dt.Rows[n]["F_Password"].ToString() != "")
                    {
                        model.F_Password = dt.Rows[n]["F_Password"].ToString();
                    }
                    if (dt.Rows[n]["F_ExtensionNumber"] != null && dt.Rows[n]["F_ExtensionNumber"].ToString() != "")
                    {
                        model.F_ExtensionNumber = dt.Rows[n]["F_ExtensionNumber"].ToString();
                    }
                    if (dt.Rows[n]["F_UserName"] != null && dt.Rows[n]["F_UserName"].ToString() != "")
                    {
                        model.F_UserName = dt.Rows[n]["F_UserName"].ToString();
                    }
                    if (dt.Rows[n]["F_DeptId"] != null && dt.Rows[n]["F_DeptId"].ToString() != "")
                    {
                        model.F_DeptId = int.Parse(dt.Rows[n]["F_DeptId"].ToString());
                    }
                    if (dt.Rows[n]["F_RoleId"] != null && dt.Rows[n]["F_RoleId"].ToString() != "")
                    {
                        model.F_RoleId = int.Parse(dt.Rows[n]["F_RoleId"].ToString());
                    }
                    //if (dt.Rows[n]["F_GroupId"] != null && dt.Rows[n]["F_GroupId"].ToString() != "")
                    //{
                    //    model.F_GroupId = int.Parse(dt.Rows[n]["F_GroupId"].ToString());
                    //    Model.T_Sys_DictionaryValue tsd = new BLL.T_Sys_DictionaryValue().GetModel(Convert.ToInt32(dt.Rows[n]["F_GroupId"].ToString()));
                    //    if (tsd != null)
                    //        model.F_GroupName = tsd.F_Name;
                    //    else model.F_GroupName = "";
                    //}
                    if (dt.Rows[n]["F_SeatFlag"] != null && dt.Rows[n]["F_SeatFlag"].ToString() != "")
                    {
                        if ((dt.Rows[n]["F_SeatFlag"].ToString() == "1") || (dt.Rows[n]["F_SeatFlag"].ToString().ToLower() == "true"))
                        {
                            model.F_SeatFlag = true;
                        }
                        else
                        {
                            model.F_SeatFlag = false;
                        }
                    }
                    if (dt.Rows[n]["F_SeatRight"] != null && dt.Rows[n]["F_SeatRight"].ToString() != "")
                    {
                        model.F_SeatRight = dt.Rows[n]["F_SeatRight"].ToString();
                    }
                    if (dt.Rows[n]["F_SeatLevel"] != null && dt.Rows[n]["F_SeatLevel"].ToString() != "")
                    {
                        model.F_SeatLevel = dt.Rows[n]["F_SeatLevel"].ToString();
                    }
                    if (dt.Rows[n]["F_SexFlag"] != null && dt.Rows[n]["F_SexFlag"].ToString() != "")
                    {
                        model.F_SexFlag = dt.Rows[n]["F_SexFlag"].ToString();
                    }
                    if (dt.Rows[n]["F_RemindFlag"] != null && dt.Rows[n]["F_RemindFlag"].ToString() != "")
                    {
                        if ((dt.Rows[n]["F_RemindFlag"].ToString() == "1") || (dt.Rows[n]["F_RemindFlag"].ToString().ToLower() == "true"))
                        {
                            model.F_RemindFlag = true;
                        }
                        else
                        {
                            model.F_RemindFlag = false;
                        }
                    }
                    if (dt.Rows[n]["F_Remark"] != null && dt.Rows[n]["F_Remark"].ToString() != "")
                    {
                        model.F_Remark = dt.Rows[n]["F_Remark"].ToString();
                    }
                    if (dt.Rows[n]["F_Telephone"] != null && dt.Rows[n]["F_Telephone"].ToString() != "")
                    {
                        model.F_Telephone = dt.Rows[n]["F_Telephone"].ToString();
                    }
                    if (dt.Rows[n]["F_Mobile"] != null && dt.Rows[n]["F_Mobile"].ToString() != "")
                    {
                        model.F_Mobile = dt.Rows[n]["F_Mobile"].ToString();
                    }
                    if (dt.Rows[n]["F_HomePhone"] != null && dt.Rows[n]["F_HomePhone"].ToString() != "")
                    {
                        model.F_HomePhone = dt.Rows[n]["F_HomePhone"].ToString();
                    }
                    if (dt.Rows[n]["F_Birthday"] != null && dt.Rows[n]["F_Birthday"].ToString() != "")
                    {
                        model.F_Birthday = DateTime.Parse(dt.Rows[n]["F_Birthday"].ToString());
                    }
                    if (dt.Rows[n]["F_CreateOn"] != null && dt.Rows[n]["F_CreateOn"].ToString() != "")
                    {
                        model.F_CreateOn = DateTime.Parse(dt.Rows[n]["F_CreateOn"].ToString());
                    }
                    if (dt.Rows[n]["F_CancelOn"] != null && dt.Rows[n]["F_CancelOn"].ToString() != "")
                    {
                        model.F_CancelOn = DateTime.Parse(dt.Rows[n]["F_CancelOn"].ToString());
                    }
                    if (dt.Rows[n]["F_DeleteFlag"] != null && dt.Rows[n]["F_DeleteFlag"].ToString() != "")
                    {
                        model.F_DeleteFlag = int.Parse(dt.Rows[n]["F_DeleteFlag"].ToString());
                    }
                    if (dt.Rows[n]["F_APPOnFlag"] != null && dt.Rows[n]["F_APPOnFlag"].ToString() != "")
                    {
                        if ((dt.Rows[n]["F_APPOnFlag"].ToString() == "1") || (dt.Rows[n]["F_APPOnFlag"].ToString().ToLower() == "true"))
                        {
                            model.F_APPOnFlag = true;
                        }
                        else
                        {
                            model.F_APPOnFlag = false;
                        }
                    }
                    if (dt.Rows[n]["F_LastActiveTime"] != null && dt.Rows[n]["F_LastActiveTime"].ToString() != "")
                    {
                        model.F_LastActiveTime = DateTime.Parse(dt.Rows[n]["F_LastActiveTime"].ToString());
                    }
                    if (dt.Rows[n]["F_See"] != null && dt.Rows[n]["F_See"].ToString() != "")
                    {
                        model.F_See = dt.Rows[n]["F_See"].ToString();
                    }
                    if (dt.Rows[n]["F_HJType"] != null && dt.Rows[n]["F_HJType"].ToString() != "")
                    {
                        model.F_HJType = int.Parse(dt.Rows[n]["F_HJType"].ToString());
                    }
                    if (dt.Rows[n]["F_PId"] != null && dt.Rows[n]["F_PId"].ToString() != "")
                    {
                        model.F_PId = int.Parse(dt.Rows[n]["F_PId"].ToString());
                    }
                    if (dt.Rows[n]["F_TmId"] != null && dt.Rows[n]["F_TmId"].ToString() != "")
                    {
                        model.F_TmId = int.Parse(dt.Rows[n]["F_TmId"].ToString());
                    }
                    if (dt.Rows[n]["F_RoleId"] != null && dt.Rows[n]["F_RoleId"].ToString() != "")
                    {
                        Model.T_Sys_RoleInfo tsr = new BLL.T_Sys_RoleInfo().GetModel(Convert.ToInt32(dt.Rows[n]["F_RoleId"].ToString()));
                        if (tsr != null)
                            model.F_RoleName = tsr.F_RoleName;
                        else model.F_RoleName = "";
                    }
                    if (dt.Rows[n]["F_DeptId"] != null && dt.Rows[n]["F_DeptId"].ToString() != "")
                    {
                        Model.T_Sys_Department tsd = new BLL.T_Sys_Department().GetModel(Convert.ToInt32(dt.Rows[n]["F_DeptId"].ToString()));
                        if (tsd != null)
                            model.F_DeptName = tsd.F_DeptName;
                        else model.F_DeptName = "";
                    }
                    if (dt.Rows[n]["F_WorkNumber"] != null && dt.Rows[n]["F_WorkNumber"].ToString() != "")
                    {
                        model.F_WorkNumber = dt.Rows[n]["F_WorkNumber"].ToString();
                    }
                    modelList.Add(model);
                }
            }
            return modelList;
        }

        /// <summary>
        /// 获得数据列表
        /// </summary>
        public DataSet GetAllList()
        {
            return GetList("");
        }

        /// <summary>
        /// 分页获取数据列表
        /// </summary>
        public int GetRecordCount(string strWhere)
        {
            return dal.GetRecordCount(strWhere);
        }
        /// <summary>
        /// 分页获取数据列表
        /// </summary>
        public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
        {
            return dal.GetListByPage(strWhere, orderby, startIndex, endIndex);
        }

        #endregion  Method
    }
}
