Esempio n. 1
0
        public ActionResult Index()
        {
            // Setup model
            SectionsAndClausesModel result = _clauseTemplates.GetSectionsWithClausesModel(LoggedInUser);

            // Setup back Url
            ViewBag.PreviousUrl = Url.Action("Index", "Home");

            // Return result
            return(View(result));
        }
Esempio n. 2
0
        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);
        }