/// <summary>
 /// 获取数据集
 /// </summary>
 /// <param name="where"></param>
 /// <param name="orderBy"></param>
 /// <returns></returns>
 public List<Member_ClassUnitContentSchedule> GetList(string where, string orderBy)
 {
     StringBuilder sql = new StringBuilder();
     sql.Append("select * from [dbo].[Member_ClassUnitContentSchedule]");
     if (!string.IsNullOrEmpty(where))
         sql.Append(" where " + where);
     if (!string.IsNullOrEmpty(orderBy))
         sql.Append(" order by " + orderBy);
     List<Member_ClassUnitContentSchedule> list = new List<Member_ClassUnitContentSchedule>();
     using (IDataReader reader = MSEntLibSqlHelper.ExecuteDataReaderBySql(sql.ToString()))
     {
         while (reader.Read())
         {
             Member_ClassUnitContentSchedule model = new Member_ClassUnitContentSchedule();
             ConvertToModel(reader, model);
             list.Add(model);
         }
     }
     return list;
 }
 /// <summary>
 /// 新增一条记录
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public int Add(Member_ClassUnitContentSchedule model)
 {
     StringBuilder sql = new StringBuilder();
     sql.Append("insert into [dbo].[Member_ClassUnitContentSchedule] ([ClassId],[TrainingId],[AccountId],[UnitContent],[Status],[Delflag],[CreateDate],[score])");
     sql.Append(" values (@ClassId,@TrainingId,@AccountId,@UnitContent,@Status,@Delflag,@CreateDate,@score)");
     sql.Append(" set @Id=@@IDENTITY");
     SqlParameter[] cmdParams = new SqlParameter[]{
         new SqlParameter("@Id", SqlDbType.Int, 4) { Value = model.Id, Direction = ParameterDirection.Output },
         new SqlParameter("@ClassId", SqlDbType.Int, 4) { Value = model.ClassId },
         new SqlParameter("@TrainingId", SqlDbType.Int, 4) { Value = model.TrainingId },
         new SqlParameter("@AccountId", SqlDbType.Int, 4) { Value = model.AccountId },
         new SqlParameter("@UnitContent", SqlDbType.Int, 4) { Value = model.UnitContent },
         new SqlParameter("@Status", SqlDbType.Bit, 1) { Value = model.Status },
         new SqlParameter("@Delflag", SqlDbType.Bit, 1) { Value = model.Delflag },
         new SqlParameter("@CreateDate", SqlDbType.DateTime, 8) { Value = model.CreateDate },
         new SqlParameter("@score", SqlDbType.Float, 8) { Value = model.score }
     };
     int result = Convert.ToInt32(MSEntLibSqlHelper.ExecuteNonQueryBySql(sql.ToString(), cmdParams));
     model.Id = Convert.ToInt32(cmdParams[0].Value);
     return result;
 }
        /// <summary>
        /// 用户的在线学习模块都要插入一条数据到Member_ClassUnitContentSchedule,作为学习进度
        /// 为当前学习[节]的学习进度
        /// </summary>
        /// <param name="iClassId"></param>
        /// <param name="iTrainingId"></param>
        /// <param name="iAccountId"></param>
        /// <param name="iUnitContent"></param>
        /// <returns></returns>
        private bool InsertMember_ClassUnitContentSchedule(int iClassId, int iTrainingId, int iAccountId, int iUnitContent)
        {
            var bolResult = false;
            var model = new Member_ClassUnitContentSchedule();
            var comBll = new Member_ClassUnitContentScheduleBLL();
            var strOrderBy = "CreateDate";

            var stbSqlWhere = new StringBuilder();
            stbSqlWhere.Append("Status = 1 AND Delflag = 0");
            stbSqlWhere.AppendFormat("AND ClassId = {0} AND TrainingId={1} AND AccountId={2} AND UnitContent={3}",
                iClassId, iTrainingId, iAccountId, iUnitContent);
            var List_Member_Class = comBll.GetList(stbSqlWhere.ToString(), strOrderBy);
            //当数据不存在的时候添加一条数据进去,否则仅修改最后时间
            if (List_Member_Class == null || List_Member_Class.Count <= 0)
            {
                model.ClassId = iClassId;
                model.TrainingId = iTrainingId;
                model.AccountId = iAccountId;
                model.UnitContent = iUnitContent;
                model.Delflag = false;
                model.Status = true;
                model.CreateDate = DateTime.Now;

                if (comBll.Add(model))
                {
                    bolResult = true;
                }
            }
            else if (List_Member_Class != null && List_Member_Class.Count == 1)
            {
                model = List_Member_Class[0];
                model.CreateDate = DateTime.Now;

                if (comBll.Update(model))
                {
                    bolResult = true;
                }
            }

            return bolResult;
        }
        /// <summary>
        /// 查看当前活动是否已打分,若已打分则禁止操作
        /// </summary>
        /// <param name="iClassId"></param>
        /// <param name="iAccountId"></param>
        /// <param name="iUnitContent"></param>
        /// <returns></returns>
        private bool GetActivityScore(int iClassId, int iTrainingId, int iAccountId, int iUnitContent)
        {
            var bolResult = false;
            var Member_ClassUnitContentSchedulebll = new Member_ClassUnitContentScheduleBLL();
            var Model_Member_ClassUnitContentSchedule = new Member_ClassUnitContentSchedule();
            var strWhere_Activity = string.Format(@" Delflag = 0 AND Status = 1 AND ClassId = {0} AND TrainingId = {1} AND AccountId = {2} AND UnitContent = {3}",
                               iClassId, iTrainingId, iAccountId, iUnitContent);

            var List_Course_UnitHomeWor = Member_ClassUnitContentSchedulebll.GetList(strWhere_Activity, string.Empty);
            if (List_Course_UnitHomeWor != null && List_Course_UnitHomeWor.Count > 0)
            {
                Model_Member_ClassUnitContentSchedule = List_Course_UnitHomeWor[0];
                if (Model_Member_ClassUnitContentSchedule.score != null)
                {
                    bolResult = true;
                }
            }

            return bolResult;
        }
 /// <summary>
 /// 获取分页数据集
 /// </summary>
 /// <param name="pageSize"></param>
 /// <param name="pageIndex"></param>
 /// <param name="where"></param>
 /// <param name="orderBy"></param>
 /// <param name="recordCount"></param>
 /// <returns></returns>
 public List<Member_ClassUnitContentSchedule> GetList(int pageSize, int pageIndex, string where, string orderBy, out int recordCount)
 {
     if (string.IsNullOrEmpty(orderBy))
         throw new ArgumentNullException();
     StringBuilder sb = new StringBuilder();
     sb.Append("select count(1) from [dbo].[Member_ClassUnitContentSchedule]");
     if (!string.IsNullOrEmpty(where))
         sb.Append(" where " + where);
     recordCount = Convert.ToInt32(MSEntLibSqlHelper.ExecuteScalarBySql(sb.ToString()));
     int start = (pageIndex - 1) * pageSize + 1;
     int end = pageIndex * pageSize;
     StringBuilder sql = new StringBuilder();
     sql.Append("select * from (select *,ROW_NUMBER() over (order by " + orderBy + ") as [RowNum] from [dbo].[Member_ClassUnitContentSchedule]");
     if (!string.IsNullOrEmpty(where))
         sql.Append(" where " + where);
     sql.Append(") as T where [RowNum] between " + start + " and " + end);
     List<Member_ClassUnitContentSchedule> list = new List<Member_ClassUnitContentSchedule>();
     using (IDataReader reader = MSEntLibSqlHelper.ExecuteDataReaderBySql(sql.ToString()))
     {
         while (reader.Read())
         {
             Member_ClassUnitContentSchedule model = new Member_ClassUnitContentSchedule();
             ConvertToModel(reader, model);
             list.Add(model);
         }
     }
     return list;
 }
 private void ConvertToModel(IDataReader reader, Member_ClassUnitContentSchedule model)
 {
     if (reader["Id"] != DBNull.Value)
         model.Id = Convert.ToInt32(reader["Id"]);
     if (reader["ClassId"] != DBNull.Value)
         model.ClassId = Convert.ToInt32(reader["ClassId"]);
     if (reader["TrainingId"] != DBNull.Value)
         model.TrainingId = Convert.ToInt32(reader["TrainingId"]);
     if (reader["AccountId"] != DBNull.Value)
         model.AccountId = Convert.ToInt32(reader["AccountId"]);
     if (reader["UnitContent"] != DBNull.Value)
         model.UnitContent = Convert.ToInt32(reader["UnitContent"]);
     if (reader["Status"] != DBNull.Value)
         model.Status = Convert.ToBoolean(reader["Status"]);
     if (reader["Delflag"] != DBNull.Value)
         model.Delflag = Convert.ToBoolean(reader["Delflag"]);
     if (reader["CreateDate"] != DBNull.Value)
         model.CreateDate = Convert.ToDateTime(reader["CreateDate"]);
     if (reader["score"] != DBNull.Value)
         model.score = Convert.ToDouble(reader["score"]);
 }
 /// <summary>
 /// 更新一条记录
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public int Update(Member_ClassUnitContentSchedule model)
 {
     StringBuilder sql = new StringBuilder();
     sql.Append("update [dbo].[Member_ClassUnitContentSchedule] set ");
     sql.Append("[ClassId]=@ClassId,[TrainingId]=@TrainingId,[AccountId]=@AccountId,[UnitContent]=@UnitContent,[Status]=@Status,[Delflag]=@Delflag,[CreateDate]=@CreateDate,[score]=@score");
     sql.Append(" where [Id]=@Id");
     SqlParameter[] cmdParams = new SqlParameter[] {
         new SqlParameter("@Id", SqlDbType.Int, 4) { Value = model.Id },
         new SqlParameter("@ClassId", SqlDbType.Int, 4) { Value = model.ClassId },
         new SqlParameter("@TrainingId", SqlDbType.Int, 4) { Value = model.TrainingId },
         new SqlParameter("@AccountId", SqlDbType.Int, 4) { Value = model.AccountId },
         new SqlParameter("@UnitContent", SqlDbType.Int, 4) { Value = model.UnitContent },
         new SqlParameter("@Status", SqlDbType.Bit, 1) { Value = model.Status },
         new SqlParameter("@Delflag", SqlDbType.Bit, 1) { Value = model.Delflag },
         new SqlParameter("@CreateDate", SqlDbType.DateTime, 8) { Value = model.CreateDate },
         new SqlParameter("@score", SqlDbType.Float, 8) { Value = model.score }
     };
     return MSEntLibSqlHelper.ExecuteNonQueryBySql(sql.ToString(), cmdParams);
 }
 /// <summary>
 /// 取得一条记录
 /// </summary>
 /// <param name="id"></param>
 /// <param name="where"></param>
 /// <returns></returns>
 public Member_ClassUnitContentSchedule GetModel(int id, string where)
 {
     string sql = "select * from [dbo].[Member_ClassUnitContentSchedule] where [Id]=@Id";
     if (!string.IsNullOrEmpty(where))
         sql += " and " + where;
     SqlParameter[] cmdParams = new SqlParameter[]{
         new SqlParameter("@Id", SqlDbType.Int, 4) { Value = id }
     };
     using (IDataReader reader = MSEntLibSqlHelper.ExecuteDataReaderBySql(sql, cmdParams))
     {
         if (reader.Read())
         {
             Member_ClassUnitContentSchedule model = new Member_ClassUnitContentSchedule();
             ConvertToModel(reader, model);
             return model;
         }
         else
         {
             return null;
         }
     }
 }
 /// <summary>
 /// 新增一条记录
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public bool Add(Member_ClassUnitContentSchedule model)
 {
     return dal.Add(model) > 0;
 }
 /// <summary>
 /// 更新一条记录
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public bool Update(Member_ClassUnitContentSchedule model)
 {
     return dal.Update(model) > 0;
 }