Ejemplo n.º 1
0
        /// <summary>
        /// Creates a new Token member with a set of auto-generated keys, an alias, and member type.
        /// </summary>
        /// <param name="alias">nullable member alias to use, must be unique. If null, then no alias
        /// will be created with the member</param>
        /// <param name="createMemberType">the type of member to register</param>
        /// <returns>the created member</returns>
        public Task <Member> CreateMember(
            Alias alias = null,
            CreateMemberType createMemberType = CreateMemberType.Business)
        {
            var unauthenticated = ClientFactory.Unauthenticated(channel);

            return(unauthenticated
                   .CreateMemberId(createMemberType)
                   .FlatMap(memberId =>
            {
                var crypto = cryptoEngineFactory.Create(memberId);
                var operations = new List <MemberOperation>
                {
                    Util.ToAddKeyOperation(crypto.GenerateKey(Level.Privileged)),
                    Util.ToAddKeyOperation(crypto.GenerateKey(Level.Standard)),
                    Util.ToAddKeyOperation(crypto.GenerateKey(Level.Low))
                };
                var metadata = new List <MemberOperationMetadata>();
                if (alias != null)
                {
                    operations.Add(Util.ToAddAliasOperation(alias.ToNormalized()));
                    metadata.Add(Util.ToAddAliasMetadata(alias.ToNormalized()));
                }

                var signer = crypto.CreateSigner(Level.Privileged);
                return unauthenticated.CreateMember(memberId, operations, metadata, signer);
            })
                   .Map(member =>
            {
                var crypto = cryptoEngineFactory.Create(member.Id);
                var client = ClientFactory.Authenticated(channel, member.Id, crypto);
                return new Member(client);
            }));
        }
        /// <summary>
        /// Creates new member ID. After the method returns the ID is reserved on the server.
        /// </summary>
        /// <param name="createMemberType">the type of member to register</param>
        /// <returns>the created member ID</returns>
        public Task <string> CreateMemberId(CreateMemberType createMemberType)
        {
            var request = new CreateMemberRequest {
                Nonce      = Util.Nonce(),
                MemberType = createMemberType
            };

            return(gateway.CreateMemberAsync(request)
                   .ToTask(response => response.MemberId));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates a new Token member with a set of auto-generated keys, an alias, and member type.
        /// Impl method returns incomplete member object that can be used for its instance
        /// fields but will not be able to make calls
        /// </summary>
        /// <returns>newly created member</returns>
        /// <param name="alias">Alias.</param>
        /// <param name="createMemberType">Create member type.</param>
        /// <param name="recoveryAgent">Recovery agent.</param>
        /// <param name="partnerId">Partner identifier.</param>
        /// <param name="realmId">Realm identifier.</param>

        public Task <Member> CreateMemberImpl(
            Alias alias,
            CreateMemberType createMemberType,
            string recoveryAgent,
            string partnerId = null,
            string realmId   = null)
        {
            var unauthenticated = ClientFactory.Unauthenticated(channel);

            return(unauthenticated
                   .CreateMemberId(createMemberType, null, partnerId, realmId)
                   .FlatMap(memberId =>
            {
                return SetUpMemberImpl(memberId, alias, recoveryAgent);
            }));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Creates the member identifier.
        /// </summary>
        /// <returns>The member identifier.</returns>
        /// <param name="createMemberType">Create member type.</param>
        /// <param name="tokenRequestId">Token request identifier.</param>
        /// <param name="partnerId">Partner identifier.</param>
        /// <param name="realmId">Realm identifier.</param>
        public Task <string> CreateMemberId(CreateMemberType createMemberType,
                                            string tokenRequestId = null,
                                            string partnerId      = null,
                                            string realmId        = null)
        {
            var request = new CreateMemberRequest
            {
                Nonce          = Util.Nonce(),
                MemberType     = createMemberType,
                TokenRequestId = tokenRequestId ?? "",
                PartnerId      = partnerId ?? "",
                RealmId        = realmId ?? ""
            };

            return(gateway.CreateMemberAsync(request)
                   .ToTask(response => response.MemberId));
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Creates a new Token member with a set of auto-generated keys, an alias, and member type.
 /// </summary>
 /// <param name="alias">nullable member alias to use, must be unique. If null, then no alias
 /// will be created with the member</param>
 /// <param name="createMemberType">the type of member to register</param>
 /// <returns>the created member</returns>
 public Member CreateMemberBlocking(
     Alias alias = null,
     CreateMemberType createMemberType = CreateMemberType.Personal)
 {
     return(CreateMember(alias, createMemberType).Result);
 }