public ActionResult Create(string siteShortName, Guid CourseID, Guid TermID, CourseTerm courseTerm)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    courseTerm.CourseID = CourseID;
                    courseTerm.TermID = TermID;
                    courseTerm.Site = site;
                    dataRepository.CreateCourseTerm(courseTerm);

                    AssessTrack.Models.File file = FileUploader.GetFile("Syllabus",Request);

                    if (file != null)
                    {
                        courseTerm.File = file;
                        FileUploader.SaveFile(dataRepository, file);
                        dataRepository.Save();
                        FlashMessageHelper.AddMessage("New syllabus uploaded.");
                    }
                    return RedirectToAction("Index", new { siteShortName = siteShortName });
                }
                catch (RuleViolationException)
                {
                    ModelState.AddModelErrors(courseTerm.GetRuleViolations());
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("_FORM", ex.Message);
                }
            }
            return View(new CourseTermViewModel(site, courseTerm, CourseID, TermID));
        }
 public List<AssessmentType> GetTestBankAssessmentTypes(CourseTerm courseTerm)
 {
     return (from at in courseTerm.AssessmentTypes
             where at.QuestionBank
             orderby at.Name
             select at).ToList();
 }
 public List<Assessment> GetAllNonTestBankAssessments(CourseTerm courseTerm, bool includeExtraCredit, AssessmentType filterby)
 {
     var assessments = from asmt in courseTerm.Assessments
             where !asmt.AssessmentType.QuestionBank && asmt.IsVisible
             select asmt;
     if (!includeExtraCredit)
         assessments = assessments.Where(a => !a.IsExtraCredit);
     if (filterby != null)
         assessments = assessments.Where(a => a.AssessmentType == filterby);
     return assessments.OrderBy(a => a.Name).ToList();
 }
 public List<Assessment> GetAllNonTestBankAssessments(CourseTerm courseTerm, bool includeExtraCredit, AssessmentType filterby, CourseTermMember member)
 {
     var assessments = from asmt in (courseTerm != null)? courseTerm.Assessments.AsQueryable() : dc.Assessments.AsQueryable()
             where !asmt.AssessmentType.QuestionBank && asmt.IsVisible
             select asmt;
     if (!includeExtraCredit)
         assessments = assessments.Where(a => !a.IsExtraCredit);
     if (filterby != null)
         assessments = assessments.Where(a => a.AssessmentType == filterby);
     if (member.AccessLevel == 1 )
         assessments = assessments.Where(a => a.Section == null || (member.Section.HasValue && a.Section.Value == member.Section.Value));
     return assessments.OrderBy(a => a.Name).ToList();
 }
        public void DeleteCourseTerm(CourseTerm courseTerm)
        {
            foreach (var assessmentType in courseTerm.AssessmentTypes)
            {
                DeleteAssessmentType(assessmentType);
            }

            dc.Invitations.DeleteAllOnSubmit(courseTerm.Invitations);
            dc.CourseTermMessages.DeleteAllOnSubmit(courseTerm.CourseTermMessages);
            dc.CourseTermMembers.DeleteAllOnSubmit(courseTerm.CourseTermMembers);
            dc.Tags.DeleteAllOnSubmit(courseTerm.Tags);

            dc.CourseTerms.DeleteOnSubmit(courseTerm);
        }
示例#6
0
 public static string CourseTermLink(this HtmlHelper html, CourseTerm courseTerm, string before, string after)
 {
     Site site = courseTerm.Site;
     string courseTermLink = HtmlHelper.GenerateRouteLink(html.ViewContext.RequestContext,
         html.RouteCollection, courseTerm.Name, null,
         new System.Web.Routing.RouteValueDictionary(
             new
             {
                 action = "Details",
                 controller = "CourseTerm",
                 siteShortName = site.ShortName,
                 courseTermShortName = courseTerm.ShortName
             }), null);
     string finallink = before + courseTermLink + after;
     return finallink;
 }
示例#7
0
 public static bool CheckAuthorization(HttpContext httpContext, Site site, CourseTerm courseTerm, AuthScope scope, int minLevel, int maxLevel)
 {
     AssessTrackDataRepository data = new AssessTrackDataRepository();
     if (httpContext == null)
     {
         throw new ArgumentNullException("httpContext");
     }
     IPrincipal user = httpContext.User;
     if (!user.Identity.IsAuthenticated)
     {
         return false;
     }
     //Get the user's profile and see if they have
     //the required access level
     Profile profile = data.GetLoggedInProfile();
     switch (scope)
     {
         case AuthScope.Application:
             {
                 if (profile.AccessLevel < minLevel || profile.AccessLevel > maxLevel)
                     return false;
                 break;
             }
         case AuthScope.Site:
             {
                 SiteMember member = data.GetSiteMemberByMembershipID(site,profile.MembershipID);
                 if (member == null ||
                     (member.AccessLevel < minLevel || member.AccessLevel > maxLevel))
                     return false;
             }
             break;
         case AuthScope.CourseTerm:
             {
                 CourseTermMember member = data.GetCourseTermMemberByMembershipID(courseTerm, profile.MembershipID);
                 if (member == null ||
                     (member.AccessLevel < minLevel || member.AccessLevel > maxLevel))
                     return false;
             }
             break;
         default:
             //TODO Do some logging here maybe?
             return false;
     }
     return true;
 }
        public void CreateCourseTerm(CourseTerm courseTerm)
        {
            using (TransactionScope scope = new TransactionScope())
            {
                Guid userid = GetLoggedInProfile().MembershipID;
                dc.CourseTerms.InsertOnSubmit(courseTerm);
                CourseTermMember member = new CourseTermMember()
                {
                    CourseTerm = courseTerm,
                    MembershipID = userid,
                    AccessLevel = 10
                };
                dc.CourseTermMembers.InsertOnSubmit(member);
                dc.SubmitChanges();

                scope.Complete();
            }
        }
 public CourseTermViewModel(Site site, CourseTerm courseTerm, Guid courseid, Guid termid)
 {
     CourseList = new SelectList(site.Courses.ToList(), "CourseID", "Name", courseid);
     TermList = new SelectList(site.Terms.ToList(), "TermID", "Name", termid);
     CourseTerm = courseTerm;
 }
 public CourseTermViewModel(Site site, CourseTerm courseTerm)
 {
     CourseList = new SelectList(site.Courses.ToList(), "CourseID", "Name");
     TermList = new SelectList(site.Terms.ToList(), "TermID", "Name");
     CourseTerm = courseTerm;
 }
 public CourseTermJoinModel(IEnumerable<CourseTerm> courseTerms, CourseTerm selected)
 {
     if (selected != null)
     {
         CourseTermsList = new SelectList(courseTerms, "CourseTermID", "Name", selected.CourseTermID);
     }
     else
     {
         CourseTermsList = new SelectList(courseTerms, "CourseTermID", "Name");
     }
 }
示例#12
0
 public SelectList GetTagsSelectList(CourseTerm courseTerm)
 {
     return GetTagsSelectList(courseTerm,null);
 }
示例#13
0
 public bool IsCourseTermMember(CourseTerm courseTerm, Profile profile)
 {
     CourseTermMember ctMember = (from ctm in dc.CourseTermMembers
                                  where ctm.CourseTerm == courseTerm
                                  && ctm.Profile == profile
                                  select ctm).SingleOrDefault();
     return (ctMember != null);
 }
 public SubmissionExceptionFormModel(List<Assessment> Assessments, CourseTerm ct)
 {
     AssessmentsList = new SelectList(Assessments, "AssessmentID", "Name");
     StudentsList = new SelectList(ct.GetMembers(1, 1), "MembershipID", "FullName");
 }
 public SubmissionExceptionFormModel(CourseTerm ct)
     : this(ct.Assessments.OrderBy(a => a.Name).ToList(),ct)
 {
 }
示例#16
0
 public bool IsCourseTermMember(CourseTerm courseTerm)
 {
     Profile p = GetLoggedInProfile();
     return IsCourseTermMember(courseTerm, p);
 }
示例#17
0
 // This method must be thread-safe since it is called by the thread-safe OnCacheAuthorization() method.
 protected virtual bool AuthorizeCore(HttpContextBase httpContext, Site site, CourseTerm courseTerm)
 {
     return AuthHelper.CheckAuthorization(HttpContext.Current, site, courseTerm, scope, minLevel, maxLevel);
 }
示例#18
0
 public SelectList GetTagsSelectList(CourseTerm courseTerm, object selectedValue)
 {
     return new SelectList(courseTerm.Tags, "TagID", "Name", selectedValue);
 }
示例#19
0
 public List<CourseTermMember> GetStudentsInCourseTerm(CourseTerm courseTerm)
 {
     return courseTerm.GetMembers(1, 1);
 }
示例#20
0
 public List<CourseTermMember> GetExcludedUsersInCourseTerm(CourseTerm courseTerm)
 {
     return courseTerm.GetMembers(0, 0);
 }
示例#21
0
 public List<CourseTermMember> GetSuperUsersInCourseTerm(CourseTerm courseTerm)
 {
     return courseTerm.GetMembers(6, 9);
 }
示例#22
0
 public List<CourseTermMember> GetPowerUsersInCourseTerm(CourseTerm courseTerm)
 {
     return courseTerm.GetMembers(2, 5);
 }
示例#23
0
 public bool JoinCourseTerm(CourseTerm courseTerm)
 {
     Profile profile = GetLoggedInProfile();
     if (IsCourseTermMember(courseTerm, profile))
         return false;
     CourseTermMember member = new CourseTermMember()
     {
         CourseTerm = courseTerm,
         Profile = profile,
         AccessLevel = 1
     };
     dc.CourseTermMembers.InsertOnSubmit(member);
     dc.SubmitChanges();
     return true;
 }
示例#24
0
 public Tag GetTagByName(CourseTerm courseTerm, string name)
 {
     return courseTerm.Tags.SingleOrDefault(t => t.Name == name);
 }
 public SubmissionExceptionFormModel(List<Assessment> Assessments, CourseTerm ct, object selectedStudent, object selectedAssessment, DateTime dueDate)
 {
     AssessmentsList = new SelectList(Assessments, "AssessmentID", "Name", selectedAssessment);
     StudentsList = new SelectList(ct.GetMembers(1, 1), "MembershipID", "FullName", selectedStudent);
     DueDate = dueDate;
 }
示例#26
0
 public List<Tag> GetTags(CourseTerm courseTerm, bool includeEmptyTags)
 {
     var tags = courseTerm.Tags.ToList();
     if (!includeEmptyTags)
     {
         tags = tags.Where(t => GetTaggedItems(t).Count > 0).ToList();
     }
     return tags.OrderBy(t => t.Name).ToList();
 }
示例#27
0
 public List<CourseTermMember> GetOwnersInCourseTerm(CourseTerm courseTerm)
 {
     return courseTerm.GetMembers(10, 10);
 }
 public ActionResult Create(string siteShortName)
 {
     CourseTerm courseTerm = new CourseTerm();
     return View(new CourseTermViewModel(site,courseTerm));
 }
示例#29
0
 public List<Profile> GetStudentProfiles(CourseTerm courseTerm)
 {
     return courseTerm.GetMemberProfiles(1, 1);
 }
 public CourseTermIndexModel(CourseTerm ct, bool userEnrolled)
 {
     CourseTerm = ct;
     UserEnrolled = userEnrolled;
 }