示例#1
0
        public async Task Create([FromBody] CreateGroup body)
        {
            var groupId = $"{SpisumNames.Prefixes.Group}{body.Id}";

            try
            {
                var permissions = Enum.GetValues(typeof(GroupPermissionTypes)).Cast <GroupPermissionTypes>().Select(x => $"_{x}").ToList();
                permissions.Insert(0, "");                   // for basic name, for list all people in
                permissions.Add(SpisumNames.Postfixes.Sign); // for getting people who can sign

                foreach (var permission in permissions)
                {
                    await _alfrescoHttpClient.CreateGroup(new GroupBodyCreate
                    {
                        Id          = $"{groupId}{permission}",
                        DisplayName = $"{body.Name}{permission}"
                    });
                }

                // add to main group
                await _initialGroup.AddMainGroupMember(SpisumNames.Groups.MainGroup, groupId);

                if (body.Type?.ToLower() == "dispatch")
                {
                    await _initialGroup.AddMainGroupMember(SpisumNames.Groups.DispatchGroup, groupId);
                }
                else if (body.Type?.ToLower() == "repository")
                {
                    await _initialGroup.AddMainGroupMember(SpisumNames.Groups.RepositoryGroup, groupId);
                }

                await _initScript.ProcessGroup(groupId);
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Create group structure failed");
                await _alfrescoHttpClient.DeleteGroup(groupId);
            }
        }