public async Task <LdapMember> Create(LdapMember member, string changedBy, CancellationToken cancellationToken = default)
        {
            member.Dn = $"cn={member.Id},{this._config.MemberDn}";
            await this._connection.Add(member, changedBy, cancellationToken);

            return(member);
        }
        public async Task <IActionResult> Create(int tribeId, [FromBody] LdapMember member)
        {
            try
            {
                // TODO: null checks
                // TODO: different methods for memberimport & membercreate to log the changes in the right way
                var t = await this._tribe.Get(tribeId);

                if (t == null)
                {
                    return(this.BadRequest($"The tribe {tribeId} does not exist."));
                }

                var division = await this._division.Get(t.DivisionId);

                var m = await this._manager.Create(member, nameof(MemberController) + nameof(this.Create));

                division.MemberIds.Add(m.Id);
                t.MemberIds.Add(m.Id);
                await this._group.SetMembers(division);

                await this._group.SetMembers(t);

                return(this.Ok(m));
            }
            catch (Exception ex)
            {
                this._logger.LogError(ex, nameof(MemberController) + nameof(this.Create));
                return(this.Error(this._env, ex));
            }
        }
Example #3
0
        public WireMember(LdapMember member, UserType type)
        {
            switch (type)
            {
            case UserType.FullUser:
            case UserType.ContactUser:
            {
                this.OfficialMail = member.OfficialMail;
                goto case UserType.MinimalUser;
            }

            case UserType.MinimalUser:
            {
                this.Id        = member.Id;
                this.Dn        = member.Dn;
                this.UserName  = member.UserName;
                this.FirstName = member.FirstName;
                this.LastName  = member.LastName;
                break;
            }

            default:
                throw new ArgumentOutOfRangeException(nameof(type), type, null);
            }
        }