using System; using System.Collections.Generic; using System.Linq; using System.Web; using WeiSha.Common; using Song.ServiceInterfaces; using VTemplate.Engine; namespace Song.Site.Mobile { /// /// 课程学习首页 /// public class CoursePage : BasePage { //当前课程的id private int couid = WeiSha.Common.Request.QueryString["couid"].Int32 ?? 0; //是否购买当前课程 bool isBuy = false; protected override void InitPageTemplate(HttpContext context) { Song.Entities.Course course = Business.Do().CourseSingle(couid); if (course == null) return; //记录当前学习的课程 Extend.LoginState.Accounts.Course(course); #region 创建与学员的关联 if (this.Account != null) { int accid = this.Account.Ac_ID; bool istudy = Business.Do().Study(couid,accid); } #endregion //是否免费,或是限时免费 if (course.Cou_IsLimitFree) { DateTime freeEnd = course.Cou_FreeEnd.AddDays(1).Date; if (!(course.Cou_FreeStart <= DateTime.Now && freeEnd >= DateTime.Now)) course.Cou_IsLimitFree = false; } this.Document.SetValue("course", course); //课程资源路径 this.Document.SetValue("coupath", Upload.Get["Course"].Virtual); //学习该课程的总人数,包括已经过期的 int studyCount = Business.Do().CourseStudentSum(course.Cou_ID, null); this.Document.Variables.SetValue("studyCount", studyCount); //是否学习当前课程 if (this.Account != null) { //是否购买 isBuy = Business.Do().StudyIsCourse(this.Account.Ac_ID, course.Cou_ID); //没有购买,但处于限时免费中 if (!isBuy && course.Cou_IsLimitFree) { } this.Document.Variables.SetValue("isBuy", isBuy); //是否可以学习,如果是免费或已经选修便可以学习,否则当前课程允许试用且当前章节是免费的,也可以学习 bool canStudy = isBuy || course.Cou_IsFree || course.Cou_IsLimitFree || course.Cou_IsTry; this.Document.Variables.SetValue("canStudy", canStudy); } //树形章节输出 Song.Entities.Outline[] outlines = Business.Do().OutlineAll(course.Cou_ID, true); if (outlines.Length > 0) this.Document.Variables.SetValue("olTree", Business.Do().OutlineTree(outlines)); //课程公告 Tag guidTag = this.Document.GetChildTagById("guides"); int guidCount = 0; if (guidTag != null) { string tm = guidTag.Attributes.GetValue("count", "10"); int.TryParse(tm, out guidCount); } Song.Entities.Guide[] guides = Business.Do().GuideCount(0, course.Cou_ID, 0, guidCount); this.Document.Variables.SetValue("guides", guides); //购买课程的时间区间 this.Document.RegisterGlobalFunction(this.getBuyInfo); } /// /// 获取课程的购买信息 /// /// /// protected object getBuyInfo(object[] id) { int couid = 0; if (id.Length > 0 && id[0] is int) int.TryParse(id[0].ToString(), out couid); if (this.Account != null) { return Business.Do().StudentCourse(this.Account.Ac_ID, couid); } return null; } } }