/// <summary>
 /// 新增一条记录
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public int Add(PracticalCourse_Detail model)
 {
     StringBuilder sql = new StringBuilder();
     sql.Append("insert into [dbo].[PracticalCourse_Detail] ([Title],[TraingField],[Content],[IsBatch],[OrganId],[AccountId],[PlanId],[People],[Display],[Delflag],[CreateDate],[TraingCategory],[TraingTopic],[NationalCoursId])");
     sql.Append(" values (@Title,@TraingField,@Content,@IsBatch,@OrganId,@AccountId,@PlanId,@People,@Display,@Delflag,@CreateDate,@TraingCategory,@TraingTopic,@NationalCoursId)");
     sql.Append(" set @Id=@@IDENTITY");
     SqlParameter[] cmdParams = new SqlParameter[]{
         new SqlParameter("@Id", SqlDbType.Int, 4) { Value = model.Id, Direction = ParameterDirection.Output },
         new SqlParameter("@Title", SqlDbType.VarChar, 200) { Value = model.Title },
         new SqlParameter("@TraingField", SqlDbType.Int, 4) { Value = model.TraingField },
         new SqlParameter("@Content", SqlDbType.VarChar, 8000) { Value = model.Content },
         new SqlParameter("@IsBatch", SqlDbType.Bit, 1) { Value = model.IsBatch },
         new SqlParameter("@OrganId", SqlDbType.Int, 4) { Value = model.OrganId },
         new SqlParameter("@AccountId", SqlDbType.Int, 4) { Value = model.AccountId },
         new SqlParameter("@PlanId", SqlDbType.Int, 4) { Value = model.PlanId },
         new SqlParameter("@People", SqlDbType.Int, 4) { Value = model.People },
         new SqlParameter("@Display", SqlDbType.Bit, 1) { Value = model.Display },
         new SqlParameter("@Delflag", SqlDbType.Bit, 1) { Value = model.Delflag },
         new SqlParameter("@CreateDate", SqlDbType.DateTime, 8) { Value = model.CreateDate },
         new SqlParameter("@TraingCategory", SqlDbType.Int, 4) { Value = model.TraingCategory },
         new SqlParameter("@TraingTopic", SqlDbType.Int, 4) { Value = model.TraingTopic },
         new SqlParameter("@NationalCoursId", SqlDbType.Int, 4) { Value = model.NationalCoursId }
     };
     int result = Convert.ToInt32(MSEntLibSqlHelper.ExecuteNonQueryBySql(sql.ToString(), cmdParams));
     model.Id = Convert.ToInt32(cmdParams[0].Value);
     return model.Id;
 }
 /// <summary>
 /// 获取数据集
 /// </summary>
 /// <param name="where"></param>
 /// <param name="orderBy"></param>
 /// <returns></returns>
 public List<PracticalCourse_Detail> GetList(string where, string orderBy)
 {
     StringBuilder sql = new StringBuilder();
     sql.Append("select * from [dbo].[PracticalCourse_Detail]");
     if (!string.IsNullOrEmpty(where))
         sql.Append(" where " + where);
     if (!string.IsNullOrEmpty(orderBy))
         sql.Append(" order by " + orderBy);
     List<PracticalCourse_Detail> list = new List<PracticalCourse_Detail>();
     using (IDataReader reader = MSEntLibSqlHelper.ExecuteDataReaderBySql(sql.ToString()))
     {
         while (reader.Read())
         {
             PracticalCourse_Detail model = new PracticalCourse_Detail();
             ConvertToModel(reader, model);
             list.Add(model);
         }
     }
     return list;
 }
 /// <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<PracticalCourse_Detail> 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].[PracticalCourse_Detail]");
     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].[PracticalCourse_Detail]");
     if (!string.IsNullOrEmpty(where))
         sql.Append(" where " + where);
     sql.Append(") as T where [RowNum] between " + start + " and " + end);
     List<PracticalCourse_Detail> list = new List<PracticalCourse_Detail>();
     using (IDataReader reader = MSEntLibSqlHelper.ExecuteDataReaderBySql(sql.ToString()))
     {
         while (reader.Read())
         {
             PracticalCourse_Detail model = new PracticalCourse_Detail();
             ConvertToModel(reader, model);
             list.Add(model);
         }
     }
     return list;
 }
 private void ConvertToModel(IDataReader reader, PracticalCourse_Detail model)
 {
     if (reader["Id"] != DBNull.Value)
         model.Id = Convert.ToInt32(reader["Id"]);
     if (reader["Title"] != DBNull.Value)
         model.Title = reader["Title"].ToString();
     if (reader["TraingField"] != DBNull.Value)
         model.TraingField = Convert.ToInt32(reader["TraingField"]);
     if (reader["Content"] != DBNull.Value)
         model.Content = reader["Content"].ToString();
     if (reader["IsBatch"] != DBNull.Value)
         model.IsBatch = Convert.ToBoolean(reader["IsBatch"]);
     if (reader["OrganId"] != DBNull.Value)
         model.OrganId = Convert.ToInt32(reader["OrganId"]);
     if (reader["AccountId"] != DBNull.Value)
         model.AccountId = Convert.ToInt32(reader["AccountId"]);
     if (reader["PlanId"] != DBNull.Value)
         model.PlanId = Convert.ToInt32(reader["PlanId"]);
     if (reader["People"] != DBNull.Value)
         model.People = Convert.ToInt32(reader["People"]);
     if (reader["Display"] != DBNull.Value)
         model.Display = Convert.ToBoolean(reader["Display"]);
     if (reader["Delflag"] != DBNull.Value)
         model.Delflag = Convert.ToBoolean(reader["Delflag"]);
     if (reader["CreateDate"] != DBNull.Value)
         model.CreateDate = Convert.ToDateTime(reader["CreateDate"]);
     if (reader["TraingCategory"] != DBNull.Value)
         model.TraingCategory = Convert.ToInt32(reader["TraingCategory"]);
     if (reader["TraingTopic"] != DBNull.Value)
         model.TraingTopic = Convert.ToInt32(reader["TraingTopic"]);
     if (reader["NationalCoursId"] != DBNull.Value)
         model.NationalCoursId = Convert.ToInt32(reader["NationalCoursId"]);
 }
 //public int Add(MPracticalCourseModel model)
 //{
 //    StringBuilder sql = new StringBuilder();
 //    sql.Append("insert into [dbo].[PracticalCourse_Detail] ([Title],[TraingField],[TraingCategory],[TraingTopic],[Content],[IsBatch],[OrganId],[AccountId],[PlanId],[People],[Display],[Delflag],[CreateDate])");
 //    sql.Append(" values (@Title,@TraingField,@TraingCategory,@TraingTopic,@Content,@IsBatch,@OrganId,@AccountId,@PlanId,@People,@Display,@Delflag,@CreateDate)");
 //    sql.Append(" set @Id=@@IDENTITY");
 //    SqlParameter[] cmdParams = new SqlParameter[]{
 //        new SqlParameter("@Id", SqlDbType.Int, 4) { Value = model.Id, Direction = ParameterDirection.Output },
 //        new SqlParameter("@Title", SqlDbType.VarChar, 200) { Value = model.Title },
 //        new SqlParameter("@TraingField", SqlDbType.Int, 4) { Value = model.TraingField },
 //        new SqlParameter("@TraingCategory", SqlDbType.Int, 4) { Value = model.TraingCategory },
 //        new SqlParameter("@TraingTopic", SqlDbType.Int, 4) { Value = model.TraingTopic },
 //        new SqlParameter("@Content", SqlDbType.VarChar, 8000) { Value = model.Content },
 //        new SqlParameter("@IsBatch", SqlDbType.Bit, 1) { Value = model.IsBatch },
 //        new SqlParameter("@OrganId", SqlDbType.Int, 4) { Value = model.OrganId },
 //        new SqlParameter("@AccountId", SqlDbType.Int, 4) { Value = model.AccountId },
 //        new SqlParameter("@PlanId", SqlDbType.Int, 4) { Value = model.PlanId },
 //        new SqlParameter("@People", SqlDbType.Int, 4) { Value = model.People },
 //        new SqlParameter("@Display", SqlDbType.Bit, 1) { Value = model.Display },
 //        new SqlParameter("@Delflag", SqlDbType.Bit, 1) { Value = model.Delflag },
 //        new SqlParameter("@CreateDate", SqlDbType.DateTime, 8) { Value = model.CreateDate }
 //    };
 //    int result = Convert.ToInt32(MSEntLibSqlHelper.ExecuteNonQueryBySql(sql.ToString(), cmdParams));
 //    model.Id = Convert.ToInt32(cmdParams[0].Value);
 //    return model.Id;
 //}
 //public int Add(MPracticalCourseModels model)
 //{
 //    StringBuilder sql = new StringBuilder();
 //    sql.Append("insert into [dbo].[PracticalCourse_Detail] ([Title],[TraingField],[TraingCategory],[TraingTopic],[Content],[IsBatch],[OrganId],[AccountId],[PlanId],[People],[Display],[Delflag],[CreateDate])");
 //    sql.Append(" values (@Title,@TraingField,@TraingCategory,@TraingTopic,@Content,@IsBatch,@OrganId,@AccountId,@PlanId,@People,@Display,@Delflag,@CreateDate)");
 //    sql.Append(" set @Id=@@IDENTITY");
 //    SqlParameter[] cmdParams = new SqlParameter[]{
 //        new SqlParameter("@Id", SqlDbType.Int, 4) { Value = model.Id, Direction = ParameterDirection.Output },
 //        new SqlParameter("@Title", SqlDbType.VarChar, 200) { Value = model.Title },
 //        new SqlParameter("@TraingField", SqlDbType.Int, 4) { Value = model.TraingField },
 //        new SqlParameter("@TraingCategory", SqlDbType.Int, 4) { Value = model.TraingCategory },
 //        new SqlParameter("@TraingTopic", SqlDbType.Int, 4) { Value = model.TraingTopic },
 //        new SqlParameter("@Content", SqlDbType.VarChar, 8000) { Value = model.Content },
 //        new SqlParameter("@IsBatch", SqlDbType.Bit, 1) { Value = model.IsBatch },
 //        new SqlParameter("@OrganId", SqlDbType.Int, 4) { Value = model.OrganId },
 //        new SqlParameter("@AccountId", SqlDbType.Int, 4) { Value = model.AccountId },
 //        new SqlParameter("@PlanId", SqlDbType.Int, 4) { Value = model.PlanId },
 //        new SqlParameter("@People", SqlDbType.Int, 4) { Value = model.People },
 //        new SqlParameter("@Display", SqlDbType.Bit, 1) { Value = model.Display },
 //        new SqlParameter("@Delflag", SqlDbType.Bit, 1) { Value = model.Delflag },
 //        new SqlParameter("@CreateDate", SqlDbType.DateTime, 8) { Value = model.CreateDate }
 //    };
 //    int result = Convert.ToInt32(MSEntLibSqlHelper.ExecuteNonQueryBySql(sql.ToString(), cmdParams));
 //    model.Id = Convert.ToInt32(cmdParams[0].Value);
 //    return model.Id;
 //}
 /// <summary>
 /// 更新一条记录
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public int Update(PracticalCourse_Detail model)
 {
     StringBuilder sql = new StringBuilder();
     sql.Append("update [dbo].[PracticalCourse_Detail] set ");
     sql.Append("[Title]=@Title,[TraingField]=@TraingField,[Content]=@Content,[IsBatch]=@IsBatch,[OrganId]=@OrganId,[AccountId]=@AccountId,[PlanId]=@PlanId,[People]=@People,[Display]=@Display,[Delflag]=@Delflag,[CreateDate]=@CreateDate,[TraingCategory]=@TraingCategory,[TraingTopic]=@TraingTopic,[NationalCoursId]=@NationalCoursId");
     sql.Append(" where [Id]=@Id");
     SqlParameter[] cmdParams = new SqlParameter[] {
         new SqlParameter("@Id", SqlDbType.Int, 4) { Value = model.Id },
         new SqlParameter("@Title", SqlDbType.VarChar, 200) { Value = model.Title },
         new SqlParameter("@TraingField", SqlDbType.Int, 4) { Value = model.TraingField },
         new SqlParameter("@Content", SqlDbType.VarChar, 8000) { Value = model.Content },
         new SqlParameter("@IsBatch", SqlDbType.Bit, 1) { Value = model.IsBatch },
         new SqlParameter("@OrganId", SqlDbType.Int, 4) { Value = model.OrganId },
         new SqlParameter("@AccountId", SqlDbType.Int, 4) { Value = model.AccountId },
         new SqlParameter("@PlanId", SqlDbType.Int, 4) { Value = model.PlanId },
         new SqlParameter("@People", SqlDbType.Int, 4) { Value = model.People },
         new SqlParameter("@Display", SqlDbType.Bit, 1) { Value = model.Display },
         new SqlParameter("@Delflag", SqlDbType.Bit, 1) { Value = model.Delflag },
         new SqlParameter("@CreateDate", SqlDbType.DateTime, 8) { Value = model.CreateDate },
         new SqlParameter("@TraingCategory", SqlDbType.Int, 4) { Value = model.TraingCategory },
         new SqlParameter("@TraingTopic", SqlDbType.Int, 4) { Value = model.TraingTopic },
         new SqlParameter("@NationalCoursId", SqlDbType.Int, 4) { Value = model.NationalCoursId }
     };
     return MSEntLibSqlHelper.ExecuteNonQueryBySql(sql.ToString(), cmdParams);
 }
        public ActionResult CreatePracticalCourse(string Title, string TraingField, string CreatetraingCategory, string CreatetraingTopic, string Content, string Members, string Roles, string AttachPathList, string createtraingNation)
        {
            try
            {
                string[] sMembers = Members.Trim(',').Split(',');
                string[] sRoles = Roles.Trim(',').Split(',');
                PracticalCourse_Detail pCourseModel = new PracticalCourse_Detail();
                pCourseModel.Title = Title;
                pCourseModel.TraingField = TraingField.ToInt();
                pCourseModel.TraingCategory = CreatetraingCategory.ToInt();
                pCourseModel.TraingTopic = CreatetraingTopic.ToInt();
                pCourseModel.Content = Content;
                pCourseModel.IsBatch = true;
                pCourseModel.OrganId = Code.SiteCache.Instance.OrganId;
                pCourseModel.PlanId = Code.SiteCache.Instance.PlanId;
                pCourseModel.People = sMembers.Length;
                pCourseModel.Display = true;
                pCourseModel.Delflag = false;
                pCourseModel.CreateDate = DateTime.Now;
                pCourseModel.NationalCoursId = Convert.ToInt32(createtraingNation);
                PracticalCourse_DetailBLL practicalCourse_DetailBLL = new PracticalCourse_DetailBLL();

                //实践课程
                int PracticalCourseId = practicalCourse_DetailBLL.Add(pCourseModel);

                PracticalCourse_AttachmentBLL practicalCourse_AttachmentBLL = new PracticalCourse_AttachmentBLL();
                if (!string.IsNullOrEmpty(AttachPathList))
                {
                    DataTable dt = practicalCourse_AttachmentBLL.GetTable("1=0", "");
                    foreach (string s in AttachPathList.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries))
                    {
                        DataRow row = dt.NewRow();
                        string[] file = s.Split('|');
                        row["Id"] = file[0];
                        row["PracticalCourseId"] = pCourseModel.Id;
                        row["Title"] = file[1].Replace("'", "''");
                        row["Link"] = file[2];
                        row["Sort"] = 50;
                        row["Display"] = 1;
                        row["Delflag"] = 0;
                        row["CreateDate"] = DateTime.Now;
                        dt.Rows.Add(row);
                    }
                    //实践课程附件表
                    practicalCourse_AttachmentBLL.BatchAttach(dt);
                }

                for (int i = 0; i < sMembers.Length; i++)
                {

                    Member_PracticalCourseBLL member_PracticalCourseBLL = new Member_PracticalCourseBLL();
                    Member_PracticalCourse memPCourseModel = new Member_PracticalCourse();
                    Member_PracticalCourseApplication mpcamodel = new Member_PracticalCourseApplication();
                    memPCourseModel.PracticalCourseId = PracticalCourseId;
                    memPCourseModel.AccountId = Convert.ToInt32(sMembers[i]);
                    memPCourseModel.OrganId = Code.SiteCache.Instance.OrganId;
                    memPCourseModel.Creater = Code.SiteCache.Instance.LoginInfo.UserId;
                    memPCourseModel.Status = 2;
                    memPCourseModel.RoleId = Convert.ToInt32(sRoles[i]);
                    memPCourseModel.Delflag = false;
                    memPCourseModel.CreateDate = DateTime.Now;
                    //用户实践课程申请表
                    mpcamodel.FlowId = member_PracticalCourseBLL.Add(memPCourseModel);
                    mpcamodel.Status = 2;
                    mpcamodel.Creater = Code.SiteCache.Instance.LoginInfo.UserId;
                    mpcamodel.AccountId = Convert.ToInt32(sMembers[i]);
                    mpcamodel.CreateDate = DateTime.Now;
                    mpcamodel.Delflag = false;
                    if (mpcamodel.FlowId > 0)
                    {
                        Member_PracticalCourseApplicationBLL member_PracticalCourseApplicationBLL = new Member_PracticalCourseApplicationBLL();
                        //用户实践课程流程表
                        member_PracticalCourseApplicationBLL.Add(mpcamodel);
                    }
                    //用户培训计划课程大类学时表
                    Member_TrainingReditBLL member_TrainingReditBLL = new Member_TrainingReditBLL();
                    List<Member_TrainingRedit> Listmember_TrainingRedit = new List<Member_TrainingRedit>();
                    Listmember_TrainingRedit = member_TrainingReditBLL.GetList(" TrainingField=3 and Delflag='false' and PlanId='" + Code.SiteCache.Instance.PlanId + "' and AccountId='" + Convert.ToInt32(sMembers[i]) + "' ", "");
                    if (Listmember_TrainingRedit == null || Listmember_TrainingRedit.Count == 0)
                    {
                        Member_TrainingRedit member_TrainingRedit = new Member_TrainingRedit();
                        member_TrainingRedit.TrainingField = 3;
                        member_TrainingRedit.PlanId = Code.SiteCache.Instance.PlanId;
                        member_TrainingRedit.AccountId = Convert.ToInt32(sMembers[i]);
                        PracticalCourse_RoleCreditsBLL practicalCourse_RoleCreditsBLL = new PracticalCourse_RoleCreditsBLL();
                        member_TrainingRedit.Credits = practicalCourse_RoleCreditsBLL.GetList(" TraingField=3 and TraingCategory='" + CreatetraingCategory.ToInt() + "' and TraingTopic='" + CreatetraingTopic.ToInt() + "' and RoleId='" + Convert.ToInt32(sRoles[i]) + "'", "")[0].Credits;
                        member_TrainingRedit.Delflag = false;
                        member_TrainingRedit.CreateDate = DateTime.Now;
                        member_TrainingReditBLL.Add(member_TrainingRedit);
                    }
                    else
                    {
                        Member_TrainingRedit member_TrainingRedit = Listmember_TrainingRedit[0];
                        PracticalCourse_RoleCreditsBLL practicalCourse_RoleCreditsBLL = new PracticalCourse_RoleCreditsBLL();
                        member_TrainingRedit.Credits += practicalCourse_RoleCreditsBLL.GetList(" TraingField=3 and TraingCategory='" + CreatetraingCategory.ToInt() + "' and TraingTopic='" + CreatetraingTopic.ToInt() + "' and RoleId='" + Convert.ToInt32(sRoles[i]) + "'", "")[0].Credits;
                        member_TrainingReditBLL.Update(member_TrainingRedit);
                    }

                }
                TempData["Msg"] = "提交成功!";
                return RedirectToAction("PracticalCourseList");
            }
            catch (Exception ex)
            {
                TempData["Msg"] = "提交失败!";
                return RedirectToAction("PracticalCourseList");
            }
        }
 /// <summary>
 /// 取得一条记录
 /// </summary>
 /// <param name="id"></param>
 /// <param name="where"></param>
 /// <returns></returns>
 public PracticalCourse_Detail GetModel(int id, string where)
 {
     string sql = "select * from [dbo].[PracticalCourse_Detail] 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())
         {
             PracticalCourse_Detail model = new PracticalCourse_Detail();
             ConvertToModel(reader, model);
             return model;
         }
         else
         {
             return null;
         }
     }
 }
        public ActionResult UpdatePracticalCourseSingle(int Id, int? IMemberPCourseid, string Title, string TraingField, string CreatetraingCategory, string CreatetraingTopic, string Content, string createroleList, string AttachPathList, string createtraingNation, int IType)
        {
            try
            {
                PracticalCourse_DetailBLL practicalCourse_DetailBLL = new PracticalCourse_DetailBLL();
                PracticalCourse_Detail pCourseModel = new PracticalCourse_Detail();
                pCourseModel = practicalCourse_DetailBLL.GetModel(Id, "");
                pCourseModel.Title = Server.UrlDecode(Title);
                pCourseModel.TraingField = TraingField.ToInt();
                pCourseModel.TraingCategory = CreatetraingCategory.ToInt();
                pCourseModel.TraingTopic = CreatetraingTopic.ToInt();
                pCourseModel.Content = Content;
                pCourseModel.NationalCoursId = Convert.ToInt32(createtraingNation);
                practicalCourse_DetailBLL.Update(pCourseModel);

                Member_PracticalCourseBLL member_PracticalCourseBLL = new Member_PracticalCourseBLL();
                Member_PracticalCourseApplication mpcamodel = new Member_PracticalCourseApplication();
                Member_PracticalCourse memPCourseModel = member_PracticalCourseBLL.GetModel((int)IMemberPCourseid,"");
                memPCourseModel.RoleId = Convert.ToInt32(createroleList);
                memPCourseModel.Status = 1;
                member_PracticalCourseBLL.Update(memPCourseModel);

                //实践课程

                PracticalCourse_AttachmentBLL practicalCourse_AttachmentBLL = new PracticalCourse_AttachmentBLL();
                DataTable dt = practicalCourse_AttachmentBLL.GetTable("Delflag=0  and Display=1 and PracticalCourseId=" + Id, "");
                List<string> attachIdList = new List<string>();
                if (!string.IsNullOrEmpty(AttachPathList))
                {
                    foreach (string s in AttachPathList.Split(':'))
                    {

                        string[] file = s.Split('|');
                        if (file[0] == "0")
                        {
                            DataRow row = dt.NewRow();
                            row["Id"] = file[0];
                            row["PracticalCourseId"] = pCourseModel.Id;
                            row["Title"] = file[1].Replace("'", "''");
                            row["Link"] = file[2];
                            row["Sort"] = 50;
                            row["Display"] = 1;
                            row["Delflag"] = 0;
                            row["CreateDate"] = DateTime.Now;
                            dt.Rows.Add(row);
                        }
                        else
                        {
                            attachIdList.Add(file[0]);
                        }
                    }
                }
                //实践课程附件表
                foreach (DataRow row in dt.Rows)
                {
                    if (row.RowState == DataRowState.Unchanged && !attachIdList.Contains(row["Id"].ToString()))
                        row.Delete();
                }
                practicalCourse_AttachmentBLL.BatchAttach(dt);
                TempData["Msg"] = "提交成功!";
                if (IType == 2)
                {
                    return RedirectToAction("../PracticalCourse/PracticalCourseList");
                }
                else {
                    return RedirectToAction("../../Learn/MyPractice/List");
                }
            }
            catch (Exception ex)
            {
                TempData["Msg"] = "提交失败!";
                return RedirectToAction("../../Learn/MyPractice/List");
            }
        }
        public ActionResult MyVerify(int Status, int mpId, string verifycontent)
        {
            try
            {
                Member_PracticalCourseBLL member_PracticalCourseBLL = new Member_PracticalCourseBLL();
                Member_PracticalCourse member_PracticalCourse = new Member_PracticalCourse();
                PracticalCourse_DetailBLL practicalCourse_DetailBLL = new PracticalCourse_DetailBLL();
                PracticalCourse_Detail practicalCourse_Detail = new PracticalCourse_Detail();
                member_PracticalCourse = member_PracticalCourseBLL.GetModel(mpId, "");
                practicalCourse_Detail = practicalCourse_DetailBLL.GetPracticeModel(mpId);

                //用户培训计划课程大类学时表
                if (member_PracticalCourse.Status == 1 && Status == 2 || member_PracticalCourse.Status == 3 && Status == 2)
                {
                    Member_TrainingReditBLL member_TrainingReditBLL = new Member_TrainingReditBLL();
                    List<Member_TrainingRedit> Listmember_TrainingRedit = member_TrainingReditBLL.GetList(" TrainingField=3 and Delflag='false' and PlanId='" + practicalCourse_Detail.PlanId + "' and AccountId='" + member_PracticalCourse.AccountId + "' ", "");
                    if (Listmember_TrainingRedit == null || Listmember_TrainingRedit.Count == 0)
                    {
                        Member_TrainingRedit member_TrainingRedit = new Member_TrainingRedit();
                        member_TrainingRedit.TrainingField = 3;
                        member_TrainingRedit.PlanId = practicalCourse_Detail.PlanId;
                        member_TrainingRedit.AccountId = member_PracticalCourse.AccountId;
                        PracticalCourse_RoleCreditsBLL practicalCourse_RoleCreditsBLL = new PracticalCourse_RoleCreditsBLL();
                        member_TrainingRedit.Credits = practicalCourse_RoleCreditsBLL.GetList(" TraingField=3 and TraingCategory='" + practicalCourse_Detail.TraingCategory.ToInt() + "' and TraingTopic='" + practicalCourse_Detail.TraingTopic.ToInt() + "' and RoleId='" + Convert.ToInt32(member_PracticalCourse.RoleId) + "'", "")[0].Credits;
                        member_TrainingRedit.Delflag = false;
                        member_TrainingRedit.CreateDate = DateTime.Now;
                        member_TrainingReditBLL.Add(member_TrainingRedit);
                    }
                    else
                    {
                        Member_TrainingRedit member_TrainingRedit = Listmember_TrainingRedit[0];
                        PracticalCourse_RoleCreditsBLL practicalCourse_RoleCreditsBLL = new PracticalCourse_RoleCreditsBLL();
                        member_TrainingRedit.Credits += practicalCourse_RoleCreditsBLL.GetList(" TraingField=3 and TraingCategory='" + practicalCourse_Detail.TraingCategory.ToInt() + "' and TraingTopic='" + practicalCourse_Detail.TraingTopic.ToInt() + "' and RoleId='" + Convert.ToInt32(member_PracticalCourse.RoleId) + "'", "")[0].Credits;
                        member_TrainingReditBLL.Update(member_TrainingRedit);
                    }
                }
                else if (member_PracticalCourse.Status == 2 && Status == 3)
                {
                    Member_TrainingReditBLL member_TrainingReditBLL = new Member_TrainingReditBLL();
                    List<Member_TrainingRedit> Listmember_TrainingRedit = new List<Member_TrainingRedit>();
                    Listmember_TrainingRedit = member_TrainingReditBLL.GetList(" TrainingField=3 and Delflag='false' and PlanId='" + practicalCourse_Detail.PlanId + "' and AccountId='" + member_PracticalCourse.AccountId + "' ", "");

                    Member_TrainingRedit member_TrainingRedit = Listmember_TrainingRedit[0];
                    PracticalCourse_RoleCreditsBLL practicalCourse_RoleCreditsBLL = new PracticalCourse_RoleCreditsBLL();
                    member_TrainingRedit.Credits -= practicalCourse_RoleCreditsBLL.GetList(" TraingField=3 and TraingCategory='" + practicalCourse_Detail.TraingCategory.ToInt() + "' and TraingTopic='" + practicalCourse_Detail.TraingTopic.ToInt() + "' and RoleId='" + Convert.ToInt32(member_PracticalCourse.RoleId) + "'", "")[0].Credits;
                    member_TrainingReditBLL.Update(member_TrainingRedit);
                }

                member_PracticalCourse.Status = Status;
                member_PracticalCourse.ApplyRemark = verifycontent;
                member_PracticalCourseBLL.Update(member_PracticalCourse);

                Member_PracticalCourseApplicationBLL member_PracticalCourseApplicationBLL = new Member_PracticalCourseApplicationBLL();
                Member_PracticalCourseApplication member_PracticalCourseApplication = new Member_PracticalCourseApplication();
                member_PracticalCourseApplication.FlowId = mpId;
                member_PracticalCourseApplication.Status = Status;
                member_PracticalCourseApplication.Remark = verifycontent;
                member_PracticalCourseApplication.Creater = Code.SiteCache.Instance.LoginInfo.UserId;
                member_PracticalCourseApplication.AccountId = member_PracticalCourse.AccountId;
                member_PracticalCourseApplication.Delflag = false;
                member_PracticalCourseApplication.CreateDate = DateTime.Now;
                member_PracticalCourseApplicationBLL.Add(member_PracticalCourseApplication);

                TempData["Msg"] = "提交成功!";
                return RedirectToAction("../../Practice/PracticalCourse/PracticalCourseList");
            }
            catch (Exception)
            {
                TempData["Msg"] = "提交失败!";
                return RedirectToAction("../../Practice/PracticalCourse/PracticalCourseList");
            }
        }
        public ActionResult CreatePracticalCourseSingle(string Title, string TraingField, string CreatetraingCategory, string CreatetraingTopic, string Content, string createroleList, string AttachPathList, string createtraingNation)
        {
            try
            {
                PracticalCourse_Detail pCourseModel = new PracticalCourse_Detail();
                pCourseModel.Title = Server.UrlDecode(Title);
                pCourseModel.TraingField = TraingField.ToInt();
                pCourseModel.TraingCategory = CreatetraingCategory.ToInt();
                pCourseModel.TraingTopic = CreatetraingTopic.ToInt();
                pCourseModel.Content = Content;
                int length = Content.Length;
                pCourseModel.IsBatch = false;
                pCourseModel.OrganId = Code.SiteCache.Instance.OrganId;
                pCourseModel.AccountId = Code.SiteCache.Instance.LoginInfo.UserId;
                pCourseModel.PlanId = Code.SiteCache.Instance.PlanId;
                pCourseModel.People = 1;
                pCourseModel.Display = true;
                pCourseModel.Delflag = false;
                pCourseModel.CreateDate = DateTime.Now;
                pCourseModel.NationalCoursId = Convert.ToInt32(createtraingNation);
                PracticalCourse_DetailBLL practicalCourse_DetailBLL = new PracticalCourse_DetailBLL();

                Member_PracticalCourseBLL member_PracticalCourseBLL = new Member_PracticalCourseBLL();
                Member_PracticalCourse memPCourseModel = new Member_PracticalCourse();
                Member_PracticalCourseApplication mpcamodel = new Member_PracticalCourseApplication();
                //实践课程
                memPCourseModel.PracticalCourseId = practicalCourse_DetailBLL.Add(pCourseModel);

                PracticalCourse_AttachmentBLL practicalCourse_AttachmentBLL = new PracticalCourse_AttachmentBLL();
                if (!string.IsNullOrEmpty(AttachPathList))
                {
                    DataTable dt = practicalCourse_AttachmentBLL.GetTable("1=0", "");
                    foreach (string s in AttachPathList.Split(new string[] { ":" }, StringSplitOptions.RemoveEmptyEntries))
                    {
                        DataRow row = dt.NewRow();
                        string[] file = s.Split('|');
                        row["Id"] = file[0];
                        row["PracticalCourseId"] = pCourseModel.Id;
                        row["Title"] = file[1];
                        row["Link"] = file[2];
                        row["Sort"] = 50;
                        row["Display"] = 1;
                        row["Delflag"] = 0;
                        row["CreateDate"] = DateTime.Now;
                        dt.Rows.Add(row);
                    }
                    //实践课程附件表
                    practicalCourse_AttachmentBLL.BatchAttach(dt);
                }

                memPCourseModel.AccountId = Code.SiteCache.Instance.LoginInfo.UserId;
                memPCourseModel.OrganId = Code.SiteCache.Instance.OrganId;
                memPCourseModel.Status = 1;
                memPCourseModel.RoleId = Convert.ToInt32(createroleList);
                memPCourseModel.Delflag = false;
                memPCourseModel.CreateDate = DateTime.Now;
                //用户实践课程申请表
                mpcamodel.FlowId = member_PracticalCourseBLL.Add(memPCourseModel);
                mpcamodel.Status = 1;
                mpcamodel.Creater = Code.SiteCache.Instance.LoginInfo.UserId;
                mpcamodel.AccountId = Code.SiteCache.Instance.LoginInfo.UserId;
                mpcamodel.CreateDate = DateTime.Now;
                mpcamodel.Delflag = false;
                if (mpcamodel.FlowId > 0)
                {
                    Member_PracticalCourseApplicationBLL member_PracticalCourseApplicationBLL = new Member_PracticalCourseApplicationBLL();
                    //用户实践课程流程表
                    member_PracticalCourseApplicationBLL.Add(mpcamodel);
                }
                TempData["Msg"] = "提交成功!";
                return RedirectToAction("../../Learn/MyPractice/List");
            }
            catch (Exception)
            {
                TempData["Msg"] = "提交失败!";
                return RedirectToAction("../../Learn/MyPractice/List");
            }
        }
 /// <summary>
 /// 新增一条记录
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public int Add(PracticalCourse_Detail model)
 {
     return dal.Add(model);
 }
 //public int Add(MPracticalCourseModel model)
 //{
 //    return dal.Add(model);
 //}
 //public int Add(MPracticalCourseModels model)
 //{
 //    return dal.Add(model);
 //}
 /// <summary>
 /// 更新一条记录
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public bool Update(PracticalCourse_Detail model)
 {
     return dal.Update(model) > 0;
 }