public ActionResult Index() { // Setup model SectionsAndClausesModel result = _clauseTemplates.GetSectionsWithClausesModel(LoggedInUser); // Setup back Url ViewBag.PreviousUrl = Url.Action("Index", "Home"); // Return result return(View(result)); }
public SectionsAndClausesModel GetSectionsWithClausesModel(LoggedInUserDetails user) { // Check whether user is not admin if (!user.IsSysAdmin) { throw new BaseException("Access denied."); } // Setup result model var result = new SectionsAndClausesModel { Sections = new List <SectionModel>() }; // Get published license template var globalLicense = _licenseTemplates.FirstOrDefault(i => i.Status == (int)TemplateStatus.Active); if (globalLicense != null) { // Setup active template result.GlobalLicense = globalLicense.ToModel(); } // Get all sections var allSections = _sections.All().ToList(); // Setup clause templates foreach (var section in allSections) { var clauseTemplates = new List <LicenseClauseTemplateModel>(); // Get clauses for section var clauses = _clauses.Where(p => p.LicenseSectionID == section.ID).ToList(); foreach (var licenseClause in clauses) { // Get clause templates for clause var allTemplates = _clauseTemplates.Where(p => p.LicenseClauseID == licenseClause.ID); // Do not display retracted templates var templates = allTemplates.Where(i => i.Status != (int)TemplateStatus.Retracted).ToList(); // Setup clause template models foreach (var template in templates) { // Setup clause model var clauseTemplateModel = template.ToModel(); // Add to result clauseTemplates.Add(clauseTemplateModel); } } // Setup section model var sectionModel = new SectionModel { ClauseTemplates = clauseTemplates.AsReadOnly(), ID = section.ID, Title = section.Title, CreatedAt = section.CreatedAt, UpdatedAt = section.UpdatedAt }; // Add section model result.Sections.Add(sectionModel); } return(result); }