123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Linq.Expressions;
- using System.Text;
- using Bowin.Common.Linq.Entity;
- using EMISOnline.ViewModel.SystemView;
- using EMISOnline.DataLogic.SystemDAL;
- using EMISOnline.Entities;
- using EMISOnline.DataLogic.Student;
- using EMISOnline.CommonLogic.StudentServices;
- using Bowin.Web.Controls.Mvc;
- using Bowin.Common.Linq;
- using EMISOnline.ViewModel;
- namespace EMISOnline.CommonLogic.SchoolyearServices
- {
- public class CoursematerialServices : BaseServices, ICoursematerialServices
- {
- public CoursematerialDAL CoursematerialDAL { get; set; }
-
- public IList<V_StudentEducationMissionClass> GetStudentCoursematerialList(Guid UserID, Guid SchoolyearID)
- {
- Expression<Func<V_StudentEducationMissionClass, bool>> exp = (x => x.UserID == UserID && x.SchoolyearID == SchoolyearID);
-
- List<V_StudentEducationMissionClass> list = CoursematerialDAL.GetSutdentCoursematerial(exp).ToList();
- return list;
- }
- public V_StudentEducationMissionClass GetEducationMissionClass(Guid EducationMissionClassID)
- {
- Expression<Func<V_StudentEducationMissionClass, bool>> exp = (x => x.EducationMissionClassID == EducationMissionClassID);
- return CoursematerialDAL.GetSutdentCoursematerial(exp).FirstOrDefault();
- }
- public List<TreeItem> GetCourseChapterTree(Guid CoursematerialID)
- {
- List<EM_CourseChapter> list = CoursematerialDAL.GetCourseChapterByCoursematerialID(CoursematerialID);
- return CreateCourseChapterTree(list,null);
- }
- public List<TreeItem> CreateCourseChapterTree(List<EM_CourseChapter> list, Guid? ParentId)
- {
- List<TreeItem> rtn = new List<TreeItem>();
- List<EM_CourseChapter> childs = list.Where(w => w.ParentCourseChapterID == ParentId).ToList();
- foreach (EM_CourseChapter e in childs)
- {
- TreeItem item = new TreeItem();
- item.id = e.CourseChapterID.ToString();
- item.text = e.Name;
- item.attributes = null;
-
- //查找视频信息
- var query = from a in CoursematerialDAL.GetCourseVideo(e.CourseChapterID)
- where e.VideoTypeID == (int)EM_OnlineVideoType.Local
- select new TreeItem
- {
- id = a.CourseVideoID.ToString(),
- text = a.Name,
- attributes = new { VideoTypeID = (int)EM_OnlineVideoType.Local, a.PlayUrl }
- };
- var videoInfoList = query.ToList();
- if (e.VideoTypeID == (int)EM_OnlineVideoType.Outer)
- {
- videoInfoList.Add(new TreeItem { id = Guid.NewGuid().ToString(), text = e.Name, attributes = new { VideoTypeID = (int)EM_OnlineVideoType.Outer, PlayUrl = e.OuterVideoUrl } });
- }
- //var childrenList = videoInfoList.Concat(CreateCourseChapterTree(list, e.CourseChapterID)).ToList();
-
- if(e.ParentCourseChapterID==null)
- {
- List<EM_CourseChapter> childList = list.Where(w => w.ParentCourseChapterID == e.CourseChapterID).ToList();
- foreach (EM_CourseChapter c in childList)
- {
- //查找视频信息
- var childQuery = from a in CoursematerialDAL.GetCourseVideo(c.CourseChapterID)
- where c.VideoTypeID == (int)EM_OnlineVideoType.Local
- select new TreeItem
- {
- id = a.CourseVideoID.ToString(),
- text = a.Name,
- attributes = new { VideoTypeID = (int)EM_OnlineVideoType.Local, a.PlayUrl }
- };
- var childVideoInfoList = childQuery.ToList();
- if (c.VideoTypeID == (int)EM_OnlineVideoType.Outer)
- {
- childVideoInfoList.Add(new TreeItem { id = Guid.NewGuid().ToString(), text = c.Name, attributes = new { VideoTypeID = (int)EM_OnlineVideoType.Outer, PlayUrl = c.OuterVideoUrl } });
- }
- var childrensList = childVideoInfoList.ToList();
- item.children = childVideoInfoList;
- }
- }
- rtn.Add(item);
- }
- return rtn;
- }
- public EM_CourseStudyStatus GetCourseStudyStatusByUser(Guid CoursematerialID,Guid UserID)
- {
- Expression<Func<EM_CourseStudyStatus, bool>> exp = (x => x.UserID == UserID);
- exp = exp.And(x => x.CoursematerialID == CoursematerialID);
- EM_CourseStudyStatus css = CoursematerialDAL.CourseStudyStatusRepository.GetList(exp).FirstOrDefault();
- if (css == null)
- {
- css = new EM_CourseStudyStatus();
- css.CourseStudyStatusID = Guid.NewGuid();
- css.CoursematerialID = CoursematerialID;
- css.UserID = UserID;
- css.LastVideoTypeID = (int)EM_OnlineVideoType.Local;
- css.ContinuousTime = 0;
- css.LastCourseVideoLength = 0;
- css.LastOuterVideoUrl = "";
- UnitOfWork.Add(css);
- UnitOfWork.Commit();
- }
- return css;
- }
- public void SaveCourseStudyStatusByUser(EM_CourseStudyStatus cstatus)
- {
- EM_CourseStudyStatus css = GetCourseStudyStatusByUser(cstatus.CoursematerialID.Value, cstatus.UserID);
- css.ContinuousTime = cstatus.ContinuousTime;
- css.LastCourseVideoID = cstatus.LastCourseVideoID;
- css.LastCourseVideoLength = cstatus.LastCourseVideoLength;
- UnitOfWork.Update(css);
- UnitOfWork.Commit();
- }
- public EM_CourseVideo GetCourseVideo(Guid CourseVideoID)
- {
- return CoursematerialDAL.CourseVideoRepository.GetList(w => w.CourseVideoID == CourseVideoID).FirstOrDefault();
- }
- public EM_CourseVideo GetFirstCourseVideo(Guid CoursematerialID)
- {
- return CoursematerialDAL.GetCourseVideoByCoursematerialID(CoursematerialID).FirstOrDefault();
- }
- public EM_CourseChapter GetOutPlayUrl(Guid CoursematerialID)
- {
- return CoursematerialDAL.CourseChapterRepository.GetList(x => x.CoursematerialID == CoursematerialID).FirstOrDefault();
- }
- public ER_ScoreRule getScoreRule()
- {
- return CoursematerialDAL.GetScoreRule();
- }
-
- }
- }
|