private Subject ( string Subject, string format ) : System.Web.Mvc.ActionResult | ||
Subject | string | |
format | string | |
Результат | System.Web.Mvc.ActionResult |
public ActionResult Subject(string Subject, string format)
{
using (OdsRepository repository = new OdsRepository(HttpContext))
{
SubjectInfoResult subject = SubjectInfo.GetSubjectInfo(Subject);
IList<string> prefixes = subject.CoursePrefixes.Select(p => p.CoursePrefixID).ToList();
IEnumerable<Course> coursesEnum = (prefixes.Count > 0 ? repository.GetCourses(prefixes) : repository.GetCourses())
.Distinct()
.OrderBy(c => c.Subject)
.ThenBy(c => c.Number);
// TODO: Utilize SubjectModel in SubjectViewModel
SubjectViewModel model = new SubjectViewModel
{
Courses = coursesEnum,
Slug = subject.Subject.Slug,
SubjectTitle = subject.Subject.Title,
SubjectIntro = subject.Subject.Intro,
DepartmentTitle = subject.Department.Title,
DepartmentURL = subject.Department.URL,
CurrentQuarter = repository.CurrentYearQuarter,
NavigationQuarters = Helpers.GetYearQuarterListForMenus(repository)
};
if (format == "json")
{
// NOTE: AllowGet exposes the potential for JSON Hijacking (see http://haacked.com/archive/2009/06/25/json-hijacking.aspx)
// but is not an issue here because we are receiving and returning public (e.g. non-sensitive) data
return Json(model, JsonRequestBehavior.AllowGet);
}
ViewBag.LinkParams = Helpers.getLinkParams(Request);
SetCommonViewBagVars(repository, string.Empty, string.Empty);
return View(model);
}
}