示例#1
0
        public ActionResult CreateRole(int hierarchyLevelTypeId, int administratorRoleId, string systemUserGuid, string btnSubmit)
        {
            AdministratorRoleHierarchyLevelType administratorRoleHierarchyLevelType = new AdministratorRoleHierarchyLevelType();

            administratorRoleHierarchyLevelType.AdministratorRoleId  = administratorRoleId;
            administratorRoleHierarchyLevelType.HierarchyLevelTypeId = hierarchyLevelTypeId;
            administratorRoleHierarchyLevelType.SystemUserGuid       = systemUserGuid;

            //Get SystemUser
            SystemUser systemUser = new SystemUser();

            systemUser = systemUserRepository.GetUserBySystemUserGuid(systemUserGuid);

            //Check Exists
            if (systemUser == null)
            {
                ViewData["ActionMethod"] = "CreateGet";
                return(View("RecordDoesNotExistError"));
            }
            //AccessRights
            RolesRepository rolesRepository = new RolesRepository();

            if (!rolesRepository.HasWriteAccessToSystemUserRoles(administratorRoleHierarchyLevelType.SystemUserGuid))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(View("Error"));
            }

            //Update  Model from Form
            try
            {
                UpdateModel(administratorRoleHierarchyLevelType);
            }
            catch
            {
                string n = "";
                foreach (ModelState modelState in ViewData.ModelState.Values)
                {
                    foreach (ModelError error in modelState.Errors)
                    {
                        n += error.ErrorMessage;
                    }
                }
                ViewData["Message"] = "ValidationError : " + n;
                return(View("Error"));
            }


            //Database Update
            try
            {
                systemUserRepository.AddRole(administratorRoleHierarchyLevelType);
            }
            catch (SqlException ex)
            {
                logRepository.LogError(ex.Message);

                ViewData["Message"] = "There was a problem with your request, please see the log file or contact an administrator for details";
                return(View("Error"));
            }


            ViewData["NewSortOrder"] = 0;
            return(RedirectToAction("ListRoles", new { id = administratorRoleHierarchyLevelType.SystemUserGuid }));
        }