示例#1
0
        public IActionResult AddEditFrameworkCompetencyGroup(int frameworkId, int frameworkCompetencyGroupId = 0)
        {
            var detailFramework = frameworkService.GetDetailFrameworkByFrameworkId(frameworkId, GetAdminId());
            var userRole        = frameworkService.GetAdminUserRoleForFrameworkId(GetAdminId(), frameworkId);

            if (userRole < 2)
            {
                return(StatusCode(403));
            }
            var competencyGroupBase = new CompetencyGroupBase();

            if (frameworkCompetencyGroupId > 0)
            {
                competencyGroupBase = frameworkService.GetCompetencyGroupBaseById(frameworkCompetencyGroupId);
            }
            if (detailFramework == null || competencyGroupBase == null)
            {
                return(StatusCode(404));
            }
            var model = new CompetencyGroupViewModel()
            {
                DetailFramework     = detailFramework,
                CompetencyGroupBase = competencyGroupBase,
            };

            return(View("Developer/CompetencyGroup", model));
        }
        public IActionResult AddEditFrameworkCompetencyGroup(int frameworkId, CompetencyGroupBase competencyGroupBase, int frameworkCompetencyGroupId = 0)
        {
            if (!ModelState.IsValid)
            {
                if (ModelState["Name"].ValidationState == ModelValidationState.Invalid)
                {
                    ModelState.Remove(nameof(CompetencyGroupBase.Name));
                    ModelState.AddModelError(nameof(CompetencyGroupBase.Name), "Please enter a valid competency group name (between 3 and 255 characters)");
                }

                if (ModelState["Description"].ValidationState == ModelValidationState.Invalid)
                {
                    ModelState.Remove(nameof(CompetencyGroupBase.Description));
                    ModelState.AddModelError(nameof(CompetencyGroupBase.Description), "Please enter a valid competency group description (between 0 and 1000 characters)");
                }

                // do something
                var detailFramework = frameworkService.GetDetailFrameworkByFrameworkId(frameworkId, GetAdminId());
                if (detailFramework == null)
                {
                    return(StatusCode(404));
                }
                var model = new CompetencyGroupViewModel()
                {
                    DetailFramework     = detailFramework,
                    CompetencyGroupBase = competencyGroupBase
                };
                return(View("Developer/CompetencyGroup", model));
            }
            var adminId  = GetAdminId();
            var userRole = frameworkService.GetAdminUserRoleForFrameworkId(adminId, frameworkId);

            if (userRole < 2)
            {
                return(StatusCode(403));
            }
            if (competencyGroupBase.ID > 0)
            {
                frameworkService.UpdateFrameworkCompetencyGroup(frameworkCompetencyGroupId, competencyGroupBase.CompetencyGroupID, competencyGroupBase.Name, SanitizerHelper.SanitizeHtmlData
                                                                    (competencyGroupBase.Description), adminId);
                return(new RedirectResult(Url.Action("ViewFramework", new { tabname = "Structure", frameworkId }) + "#fcgroup-" + frameworkCompetencyGroupId.ToString()));
            }
            var newCompetencyGroupId = frameworkService.InsertCompetencyGroup(competencyGroupBase.Name, SanitizerHelper.SanitizeHtmlData(competencyGroupBase.Description), adminId);

            if (newCompetencyGroupId > 0)
            {
                var newFrameworkCompetencyGroupId = frameworkService.InsertFrameworkCompetencyGroup(newCompetencyGroupId, frameworkId, adminId);
                return(new RedirectResult(Url.Action("ViewFramework", new { tabname = "Structure", frameworkId, frameworkCompetencyGroupId = newFrameworkCompetencyGroupId }) + "#fcgroup-" + newFrameworkCompetencyGroupId.ToString()));
            }
            logger.LogWarning($"Attempt to add framework competency group failed for admin {adminId}.");
            return(StatusCode(403));
        }