private void LoadCourseDetail() { var courseId = CourseId; using (var helper = new DbHelper.Subject()) { lnkAddSection1.NavigateUrl = "~/Views/Course/Section/CreateSection.aspx?SubId=" + courseId; var course = helper.Find(courseId); //lblTitle.Text = course.Name; //lblSummary.Text = course.Summary; if (course != null) { var sections = course.SubjectSections; if (sections != null) { var user = Page.User as CustomPrincipal; var elligible = false; if (user != null) { using (var chelper = new DbHelper.Classes()) { var roles = user.GetRoles(); //Context.UserClass.Any(x=>x.subje) // var roles = user.GetRoles().Select(x => x.Role.RoleName).ToList(); if (roles.Contains(DbHelper.StaticValues.Roles.CourseEditor.ToString()) || roles.Contains(DbHelper.StaticValues.Roles.Manager.ToString()) || roles.Contains(DbHelper.StaticValues.Roles.Admin) || roles.Contains("teacher")) { elligible = true; } //else //{ // //teacher // elligible = (chelper.IsUserElligibleToViewSubjectSection(SubjectId, UserId)); //} var unVoidedSections = sections.Where(x => !(x.Void ?? false)).OrderBy(x => x.Position); using (var ahelper = new DbHelper.ActAndRes()) foreach (var subjectSection in unVoidedSections) { var canView = elligible; if (!canView) { canView = ahelper.EvaluateRestriction(null, subjectSection.Restriction, user.Id); } if (canView) // { SectionUc sectionuc = (SectionUc)Page.LoadControl("~/Views/Course/Section/SectionUc.ascx"); sectionuc.AddActResClicked += sectionuc_AddActResClicked; //sectionuc.EditEnabled = EditEnabled; //sectionuc.SummaryVisible = subjectSection.ShowSummary ?? false; //sectionuc.SubjectId = subjectSection.SubjectId; //sectionuc.SectionId = subjectSection.Id; //sectionuc.SectionName = subjectSection.Name; sectionuc.SetData(EditEnabled, subjectSection.ShowSummary ?? false , subjectSection.SubjectId, subjectSection.Id , subjectSection.Name, UserId, elligible); var sectionlbl = new Literal() { Text = "<a name='section_" + subjectSection.Id + "'></a>" }; pnlSections.Controls.Add(sectionlbl); pnlSections.Controls.Add(sectionuc); } } } } } } } //CreateSectionUc uc = (CreateSectionUc)Page.LoadControl("~/Views/Course/Section/CreateSectionUc.ascx"); //uc.ID = "createSection"; //uc.Visible = false; //uc.SubjectId = CourseId; //uc.OnSaveEvent += uc_OnSaveEvent; //pnlSections.Controls.Add(uc); }
public void LoadCourses() { var date = DateTime.Now; var count = 0; using (var aHelper = new DbHelper.ActAndRes()) using (var helper = new DbHelper.Subject()) using (var clsHelper = new DbHelper.Classes()) { try { //aHelper.ListActivitiesAndResourcesOfSection() var fromDashboard = FromDashboard; var user = Page.User as CustomPrincipal; if (user != null) { //var subjects = helper.GetCurrentRegularSubjectsOfUser(user.Id); //var subjectsArray = helper.ListCurrentAndEarlierCoursesOfUser(user.Id); List <Academic.DbEntities.Subjects.Subject> subjectsArray; bool earlier = false; if (hidLoadType.Value == "earlier") { earlier = true; var subArray = helper.GetEarlierAndCurrentCourseAndClassesForManagerAndTeacherV3(user.Id, false); subjectsArray = subArray[1];//.Keys.ToList(); //subjectsArray = helper.ListEarlierSubjectClasses(user.Id) // .Select(x => (x.IsRegular) ? x.SubjectStructure.Subject : x.Subject).ToList(); } else { var subArray = helper.GetEarlierAndCurrentCourseAndClassesForManagerAndTeacherV3(user.Id, true); subjectsArray = subArray[0];//.Keys.ToList(); //subjectsArray = helper.ListCurrentSubjectClasses(user.Id) // .Select(x => (x.IsRegular) ? x.SubjectStructure.Subject : x.Subject).ToList(); } //foreach (var c in subjects[loadType]) //foreach (var c in subjectsArray[loadType]) foreach (var c in subjectsArray.Distinct()) { //if (!lblHeading.Visible && fromDashboard) //{ // lblHeading.Visible = true; //} CourseUc uc = (CourseUc)Page.LoadControl("~/ViewsSite/DashBoard/Student/CourseOverView/CourseUc.ascx"); var navigationUrl = "~/Views/Course/Section/?SubId=" + c.Id; uc.TitleNavigationTarget = navigationUrl; uc.Id = c.FullName + "_" + c.Id; uc.Title = c.FullName; //classes calculation var userclasses = clsHelper.GetCurrentUserClassesOfUser(c.Id, user.Id); //var clsIds = classes.Select(x => x.SubjectClass.Id).ToList(); var roles = user.GetRoles(); var elligible = false; //Context.UserClass.Any(x=>x.subje) // var roles = user.GetRoles().Select(x => x.Role.RoleName).ToList(); //if () { elligible = user.IsElligibleForManagement; //roles.Contains(DbHelper.StaticValues.Roles.CourseEditor.ToString()) // || roles.Contains(DbHelper.StaticValues.Roles.Manager.ToString()) // || roles.Contains(DbHelper.StaticValues.Roles.Admin.ToString()) // || roles.Contains("teacher"); } var enterSubject = false; //Messages //Restriction calculation is not done yet if (!earlier) { foreach (var sec in c.SubjectSections.AsEnumerable().Where(x => !(x.Void ?? false))) { var canView = elligible; if (!canView) { canView = aHelper.EvaluateRestriction(null, sec.Restriction, user.Id); } if (canView) // { foreach (var act in sec.ActivityResources.AsEnumerable() .Where(x => x.ActivityOrResource && !(x.Void ?? false)))//only activity { if (!elligible) { canView = aHelper.EvaluateRestriction(null, act.Restriction, user.Id); } if (canView) // { foreach (var ac in act.ActivityClasses) { //ac.ActivityResourceViews.Where(x=>x.) var usrCls = userclasses.FirstOrDefault(x => x.SubjectClassId == ac.SubjectClassId); if (usrCls != null) { //check for activity view var viewed = ac.ActivityResourceViews.FirstOrDefault(a => a.UserClassId == usrCls.Id); //!cls.ActivityResourceViews.ToList().Exists(x => x.UserClassId == classMatch.Id) if (!(user.IsInRole("manager") || user.IsInRole("teacher"))) { if (viewed != null) { if ((date - viewed.ViewedDate).TotalDays < 1) { enterSubject = true; var cuc = (CourseMessageUC) Page.LoadControl("~/ViewsSite/DashBoard/Student/CourseOverView/CourseMessageUC.ascx"); var thisIcon = ActivityResourceValues.RetriveMethod(actOrRes: true, actResType: (byte)(act.ActivityResourceType)); if (thisIcon != null) { cuc.ImageLink = thisIcon.IconPath; cuc.Text = @"You have new """ + (thisIcon.Name) + @""""; cuc.NavigateUrl = navigationUrl + "#section_" + sec.Id; cuc.ToolTip = act.Name; uc.AddMessages(cuc); //if (fromDashboard) //{ // if (!pnlCourseList.Visible) // { // pnlCourseList.Visible = true; // } //} } break; } } else //(!ac.ActivityResourceViews.ToList().Exists(x => x.UserClassId == usrCls.Id))// && x.ActivityClassId == ac.Id) { //then don't display enterSubject = true; var cuc = (CourseMessageUC) Page.LoadControl("~/ViewsSite/DashBoard/Student/CourseOverView/CourseMessageUC.ascx"); //var thisType = Enum.GetNames(typeof(Enums.Activities))[act.ActivityResourceType-1]; var thisIcon = ActivityResourceValues.RetriveMethod(actOrRes: true, actResType: (byte)(act.ActivityResourceType)); if (thisIcon != null) { cuc.ImageLink = thisIcon.IconPath; cuc.Text = "You have new \"" + (thisIcon.Name) + "\""; //cuc.NavigateUrl = thisIcon.ViewUrl // + "?SubId=" + c.Id + // "&arId=" + act.ActivityResourceId + // "&secId=" + sec.Id + // "&edit=0"; cuc.NavigateUrl = navigationUrl + "#section_" + sec.Id; cuc.ToolTip = act.Name; uc.AddMessages(cuc); } break; } } #region Submission //var actres = ahelper.GetActivityResource(true // , (byte)(Enums.Activities.Assignment + 1), AssignmentId); if (usrCls.Role.RoleName == "teacher" || usrCls.Role.RoleName == "manager") { if (act.ActivityOrResource && act.ActivityResourceType == (byte)(Enums.Activities.Assignment + 1) && !(act.Void ?? false)) { //then its assignment .. check for new submission var ass = aHelper.GetAssignment(act.ActivityResourceId); if (ass != null) { //its definitely assignment var users = ass.Submissions.Count; //.OrderByDescending(x => x.SubmittedDate).Select(x => x.UserClassId).ToList(); var gradings = act.ActivityGradings.Count; //.Select(x=>x.UserClassId).ToList(); //var anyUnGraded = act.ActivityGradings.Any(x => // !users.Contains(x.UserClassId)); if (users > gradings) { enterSubject = true; var cuc = (CourseMessageUC)Page.LoadControl ("~/ViewsSite/DashBoard/Student/CourseOverView/CourseMessageUC.ascx"); var thisIcon = ActivityResourceValues.AssignmentActivity(); //ActivityResourceValues.RetriveMethod(actOrRes: true, actResType: (byte)(act.ActivityResourceType)); if (thisIcon != null) { cuc.ImageLink = "~/Content/Icons/ActivityResource/Assignment/document_submit_icon.png"; //thisIcon.IconPath; cuc.Text = "You have new Submission"; //+ (thisIcon.Name); cuc.NavigateUrl = navigationUrl + "#section_" + sec.Id; cuc.ToolTip = act.Name; uc.AddMessages(cuc); } break; } } } } #endregion } } } } } //Messages list } } if (!fromDashboard) { this.pnlCourseList.Controls.Add(uc); count++; } else { if (enterSubject) { if (!lblHeading.Visible) { lblHeading.Visible = fromDashboard; } this.pnlCourseList.Controls.Add(uc); count++; } } } } } catch (Exception e) { } } this.Visible = count != 0; }
//DbHelper.ActAndRes ahelper, private void PopulateClasses(CustomPrincipal user) { using (var ahelper = new DbHelper.ActAndRes()) { var actres = ahelper.GetActivityResource(true, (byte)(Enums.Activities.Assignment + 1), AssignmentId); if (actres != null) { ahelper.SetActivityResourceView(actres.Id, SubjectId, user.Id); var submitButtonVisiblity = true; var colorChange = false; //Color backColor = Color.White; //Color foreColor = Color.Black; var status = ""; var grade = "N/A"; var remarks = ""; var assignmentId = AssignmentId; #region Restriction and all codes var elligible = false; var roles = user.GetRoles(); if (roles.Contains(DbHelper.StaticValues.Roles.CourseEditor.ToString()) || roles.Contains(DbHelper.StaticValues.Roles.Manager.ToString()) || roles.Contains(DbHelper.StaticValues.Roles.Admin) || roles.Contains("teacher")) { elligible = true; } var canView = elligible; if (!canView) { canView = ahelper.EvaluateRestriction(null, actres.Restriction, user.Id); } //else // submitButtonVisiblity = false; if (canView) { #region Assignment Load var date = DateTime.Now; var ass = ahelper.GetAssignment(assignmentId); if (ass != null) { var timeRemaining = "N/A"; //actres will be used for restriction n class lblName.Text = ass.Name; lblPageTitle.Text = ass.Name; lblDescription.Text = ass.Description; #region Date and time Calculation if (ass.SubmissionFrom != null) { if (ass.SubmissionFrom > date) { var rem = (ass.SubmissionFrom.Value - date); timeRemaining = (rem.Days > 0 ? (rem.Days + " days ") : "") + (rem.Hours > 0 ? (rem.Hours + " hours ") : "") + (rem.Minutes > 0 ? (rem.Minutes + " minutes ") : "") + " for submission start."; submitButtonVisiblity = false; } } if (ass.DueDate != null) { lblDueDate.Text = ass.DueDate.Value.ToString("f"); if (ass.DueDate < date) { var rem = (date - ass.DueDate.Value); timeRemaining = (rem.Days > 0 ? (rem.Days + " days ") : "") + (rem.Hours > 0 ? (rem.Hours + " hours ") : "") + (rem.Minutes > 0 ? (rem.Minutes + " minutes ") : "") + " elapsed since due date."; //timeRemaining = "Due date finished on " + ass.DueDate.Value.ToString("f"); colorChange = true; //backColor = Color.DeepPink; //foreColor = Color.White; } else { var rem = (ass.DueDate.Value - date); timeRemaining = (rem.Days > 0 ? (rem.Days + " days ") : "") + (rem.Hours > 0 ? (rem.Hours + " hours ") : "") + (rem.Minutes > 0 ? (rem.Minutes + " minutes ") : "") + " for submission end."; } } else { lblDueDate.Text = "N/A"; } if (ass.CutOffDate != null && ass.CutOffDate < date) { timeRemaining = "Sumission period end."; submitButtonVisiblity = false; } lblTimeRemaining.Text = timeRemaining; #endregion #endregion foreach (var c in actres.ActivityClasses) { var userclass = c.SubjectClass.ClassUsers.FirstOrDefault(y => y.UserId == user.Id); if (userclass != null) { #region Each class view initialize var subCls = c.SubjectClass; var classUc = (ClassGradeDisplayUc) Page.LoadControl("~/Views/ActivityResource/Grading/ClassGradeDisplayUc.ascx"); classUc.SetData(subCls.IsRegular ? subCls.GetName : subCls.Name); if (subCls.SessionComplete ?? false) { classUc.Enable = false; } pnlGradeList.Controls.Add(classUc); // pnlGradeList.Controls.Add(new Literal() {Text = "<br />"}); //pnlGradeList.Controls.Add(new Literal() {Text = "<br />"}); #endregion if (userclass.Role.RoleName == "student") { #region submit view display classUc.ShowStudentListTableHeading = false; if (!(subCls.SessionComplete ?? false)) { //disable the submit button var stdGradeUc = (StudentGradeDispalyUc) Page.LoadControl( "~/Views/ActivityResource/Grading/StudentGradeDispalyUc.ascx"); //stdGradeUc.RedirectUrl = "~/Views/ActivityResource/Grading/?actResId=" + actres.Id + // "&SubId=" + SubjectId + // "&secId=" + SectionId; stdGradeUc.RedirectUrl = "~/Views/ActivityResource/Assignments/SubmitAssignmentCreate.aspx?arId=" + AssignmentId + "&SubId=" + SubjectId + "&secId=" + SectionId + "&ucId=" + userclass.Id; stdGradeUc.SubmitButtonVisible = ass.FileSubmission || ass.OnlineText; #region Submissions var subm = ass.Submissions.FirstOrDefault(x => x.UserClass.UserId == user.Id); var submissionEnabled = true; if (subm != null) { status = "Submitted on : " + ((subm.ModifiedDate == null) ? subm.SubmittedDate.ToString("f") : subm.ModifiedDate.Value.ToString("f")); stdGradeUc.SubmitButtonText = "Edit Submission"; var obtgrade = actres.ActivityGradings.FirstOrDefault( x => x.UserClassId == subm.UserClassId); if (obtgrade != null) { if (obtgrade.ObtainedGradeId != null) { grade = obtgrade.ObtainedGrade.Value; } else { grade = (obtgrade.ObtainedGradeMarks ?? 0).ToString("F"); } submissionEnabled = false;//since already graded remarks = obtgrade.Remarks; } } else { status = "Not submitted yet"; } #endregion classUc.AddControlsOusideOfTable(stdGradeUc); stdGradeUc.SubmitButtonVisible = submitButtonVisiblity; if (colorChange) { stdGradeUc.SubmitDueIndicator = true; lblTimeRemaining.ForeColor = Color.Red; //lblTimeRemaining.ForeColor = foreColor; //stdGradeUc.SubmitButtonBackColor = backColor; //stdGradeUc.SubmitButtonForeColor = foreColor; } stdGradeUc.SetData(status, grade, remarks, submissionEnabled, ass.ShowGradeToStudents); } #endregion //ucStdRole.Add(userclass); } else if (userclass.Role.RoleName == "teacher" || userclass.Role.RoleName == "manager") { //grade uc display for that class #region Grading view display , start of teacher role classUc.ShowStudentListTableHeading = true; var any = false; foreach (var clsUser in subCls.ClassUsers.Where(x => !(x.Void ?? false))) { //initialize each user uc if (clsUser.Role.RoleName == "student" && !(clsUser.Void ?? false)) { var userUc = (UserGradeDisplayUc) Page.LoadControl( "~/Views/ActivityResource/Grading/UserGradeDisplayUc.ascx"); userUc.SectionId = SectionId; userUc.SubjectId = SubjectId; userUc.SetData(clsUser, actres.Id, ass.Id, actres.ActivityResourceType); classUc.AddControls(userUc); any = true; } } if (!any) { classUc.AddControlsInsideTable(new Literal() { Text = "<tr>" + "<td>" + "No students found." + "</td>" + "</tr>" }, false); } #endregion of teacher role } } } //foreach end } else { Response.Redirect("~/"); } } else { Response.Redirect("~/"); } #endregion } else { Response.Redirect("~/"); } } }