public IActionResult CreatePermission(CreatePermissionModel model)
        {
            PermissionItems permission = model.AsPermissionItems();

            permission.Itemkey          = Guid.NewGuid().ToString();
            permission.DateCreated      = DateTime.Now;
            permission.DateLastModified = DateTime.Now;

            int newActionValue = Request.GetInt("IsNewAction", -1);

            if (newActionValue == 0)
            {
                permission.IsNewAction = false;
            }
            else if (newActionValue == 1)
            {
                permission.IsNewAction = true;
            }

            PermissionItemsCreateStatus status = PermissionItemsCreateStatus.UnknownFailure;

            permissionItemsService.CreatePermissionItems(permission, out status);
            StatusMessageData statusMessageData = null;

            switch (status)
            {
            case PermissionItemsCreateStatus.GuidFailure:
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "对不起,您输入的父级项不正确");
                break;

            case PermissionItemsCreateStatus.UrlFailure:
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "对不起,您输入的权限Url不正确");
                break;

            case PermissionItemsCreateStatus.UnknownFailure:
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "创建时,产生了一个未知错误");
                break;

            default:
                break;
            }
            if (statusMessageData == null)
            {
                return(Json(new StatusMessageData(StatusMessageType.Success, "创建成功!")));
            }
            else
            {
                return(Json(statusMessageData));
            }
        }
        public PermissionItems CreatePermissionItems(PermissionItems entity, out PermissionItemsCreateStatus status)
        {
            //配置信息取出是否是使用36位的Guid作为主键
            bool IsGuidIdentity = false;

            status = PermissionItemsCreateStatus.Created;
            if (entity == null)
            {
                status = PermissionItemsCreateStatus.UnknownFailure;
                return(null);
            }
            if (string.IsNullOrWhiteSpace(entity.Itemkey) || string.IsNullOrWhiteSpace(entity.Parentsid))
            {
                status = PermissionItemsCreateStatus.GuidFailure;
                return(null);
            }

            if (!entity.Parentsid.Equals("0"))
            {
                var newGuid1 = entity.Parentsid.Substring(0, 8) + "-";
                var newGuid2 = entity.Parentsid.Substring(8 - 1, 4) + "-";
                var newGuid3 = entity.Parentsid.Substring(12 - 1, 4) + "-";
                var newGuid4 = entity.Parentsid.Substring(16 - 1, 4) + "-";
                var newGuid5 = entity.Parentsid.Substring(20 - 1, 12);
                var newGuid  = $"{newGuid1}{newGuid2}{newGuid3}{newGuid4}{newGuid5}";

                if (!Guid.TryParse(newGuid, out var resultGuid))
                {
                    status = PermissionItemsCreateStatus.GuidFailure;
                    return(null);
                }
            }
            if (!IsGuidIdentity && entity.Itemkey.Length > 32)
            {
                entity.Itemkey = entity.Itemkey.Replace("-", "");
            }
            if (permissionItemsRepository.AddPermissionItems(entity, false))
            {
                return(entity);
            }
            else
            {
                return(null);
            }
        }
        /// <summary>
        /// 编辑权限项
        /// </summary>
        /// <param name="item"></param>
        /// <param name="status"></param>
        /// <returns></returns>
        public bool EditPermissionItems(PermissionItems entity, out PermissionItemsCreateStatus status)
        {
            status = PermissionItemsCreateStatus.Updated;
            if (entity == null)
            {
                status = PermissionItemsCreateStatus.UnknownFailure;
                return(false);
            }

            if (string.IsNullOrWhiteSpace(entity.Itemkey) || string.IsNullOrWhiteSpace(entity.Parentsid))
            {
                status = PermissionItemsCreateStatus.GuidFailure;
                return(false);
            }

            if (string.IsNullOrWhiteSpace(entity.ItemUrl))
            {
                status = PermissionItemsCreateStatus.GuidFailure;
                return(false);
            }

            if (!entity.Parentsid.Equals("0"))
            {
                var newGuid1 = entity.Parentsid.Substring(0, 8) + "-";
                var newGuid2 = entity.Parentsid.Substring(8 - 1, 4) + "-";
                var newGuid3 = entity.Parentsid.Substring(12 - 1, 4) + "-";
                var newGuid4 = entity.Parentsid.Substring(16 - 1, 4) + "-";
                var newGuid5 = entity.Parentsid.Substring(20 - 1, 12);
                var newGuid  = $"{newGuid1}{newGuid2}{newGuid3}{newGuid4}{newGuid5}";

                if (!Guid.TryParse(newGuid, out var resultGuid))
                {
                    status = PermissionItemsCreateStatus.GuidFailure;
                    return(false);
                }
            }
            PermissionItems oldEntity = permissionItemsRepository.GetByCache(w => w.Itemkey == entity.Itemkey, entity.Itemkey);
            object          result    = permissionItemsRepository.UpdatePermissionItems(entity, oldEntity.Parentsid);

            return(bool.TryParse(result.ToString(), out var isBool));
        }
        public IActionResult EditPermission(EditPermissionModel model)
        {
            PermissionItems permission = model.AsPermissionItems();

            permission.DateLastModified = DateTime.Now;

            PermissionItemsCreateStatus status = PermissionItemsCreateStatus.UnknownFailure;

            permissionItemsService.EditPermissionItems(permission, out status);

            StatusMessageData statusMessageData = null;

            switch (status)
            {
            case PermissionItemsCreateStatus.GuidFailure:
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "对不起,您输入的父级项不正确");
                break;

            case PermissionItemsCreateStatus.UrlFailure:
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "对不起,您输入的权限Url不正确");
                break;

            case PermissionItemsCreateStatus.UnknownFailure:
                statusMessageData = new StatusMessageData(StatusMessageType.Error, "更新时,产生了一个未知错误");
                break;

            default:
                break;
            }
            if (statusMessageData == null)
            {
                return(Json(new StatusMessageData(StatusMessageType.Success, "编辑成功!")));
            }
            else
            {
                return(Json(statusMessageData));
            }
        }