예제 #1
0
        public async Task <ApiResult> Handle(InsertClassifierType request, CancellationToken cancellationToken)
        {
            if (request.UserUid == Guid.Empty)
            {
                throw new InvalidOperationException("User is required.");
            }

            var item = request.Item ?? throw new ArgumentNullException(nameof(request.Item));

            using (var scope = _unitOfWorkFactory.Create())
            {
                var insertTypeResult = await _classifierTypeService.Insert(item, cancellationToken);

                if (insertTypeResult.Success == false)
                {
                    return(insertTypeResult);
                }

                var insertFieldResult = await _metadataService.Insert(new ManageFieldMetadataRequest
                {
                    EntityTypeCode = ClassifierType.TypeCode,
                    // ReSharper disable once PossibleInvalidOperationException
                    EntityUid = insertTypeResult.Uid.Value,
                    Items     = ClassifierMetadata.GetDefaultFields()
                }, cancellationToken);

                if (insertFieldResult.Success)
                {
                    scope.Commit();
                }

                return(insertTypeResult);
            }
        }
예제 #2
0
파일: Role.cs 프로젝트: montr/montr
 public static RegisterClassifierType GetDefaultMetadata()
 {
     return(new()
     {
         Item = new ClassifierType
         {
             Code = ClassifierTypeCode.Role,
             Name = "Roles",
             HierarchyType = HierarchyType.Groups,
             IsSystem = true
         },
         Fields = ClassifierMetadata.GetDefaultFields().ToList()
     });
 }
        protected static IEnumerable <RegisterClassifierType> GetCommands()
        {
            yield return(Role.GetDefaultMetadata());

            yield return(User.GetDefaultMetadata());

            yield return(new RegisterClassifierType
            {
                Item = new ClassifierType
                {
                    Code = ClassifierTypeCode.Permission,
                    Name = "Permissions",
                    HierarchyType = HierarchyType.Groups,
                    IsSystem = true
                },
                Fields = ClassifierMetadata.GetDefaultFields().ToList()
            });
        }