Пример #1
0
        public async Task <ActionResult <BaseResponse> > CopyTo(string GroupId, [FromBody] TypeCopyDto req)
        {
            //var GId = User.Claims.FirstOrDefault(a => a.Type == "GroupId").Value;
            var Account = User.Claims.FirstOrDefault(a => a.Type == "Account").Value;
            //var Code = User.Claims.FirstOrDefault(a => a.Type == "Code").Value;
            //var isAdmin = User.Claims.FirstOrDefault(a => a.Type == "IsAdmin").Value.ToLower() == "true" ? true : false;
            //验证输入的groupid是否存在
            var ex = await _gs.IsExist(a => a.Id == GroupId);

            if (!ex)
            {
                return(new BaseResponse {
                    Success = false, Message = "输入的组织编号不存在"
                });
            }
            //验证类型编号是否存在
            var source = await _ts.CheckTypeAsync(a => a.Id == req.SourceId && a.GroupId == GroupId);

            if (source.IsExist == false)
            {
                return(new BaseResponse {
                    Success = false, Message = "输入的源类型标示不存在"
                });
            }
            if (source.Status == 0)
            {
                return(new BaseResponse {
                    Success = false, Message = "源类型不能为目录节点"
                });
            }
            var target = await _ts.CheckTypeAsync(a => a.Id == req.TargetId && a.GroupId == GroupId);

            if (target.IsExist == false)
            {
                return(new BaseResponse {
                    Success = false, Message = "输入的目标类型标示不存在"
                });
            }
            if (target.Status == 1)
            {
                return(new BaseResponse {
                    Success = false, Message = "目标类型不能为叶子节点"
                });
            }

            ////验证用户权限
            //if (!(isAdmin && (GId == GroupId || Code == _config["Group"])))
            //{
            //    return Unauthorized("没有权限");
            //}
            var rm = await _ts.CopyTypeAsync(Account, req.SourceId, req.TargetId);

            return(rm);
        }