Пример #1
0
        public async Task <TLUser> SignUpAsync(string phoneNumber, string phoneCodeHash, string code, string firstName, string lastName)
        {
            var request = new TLRequestSignUp()
            {
                phone_number = phoneNumber, phone_code = code, phone_code_hash = phoneCodeHash, first_name = firstName, last_name = lastName
            };
            await _sender.Send(request);

            await _sender.Receive(request);

            OnUserAuthenticated(((TLUser)request.Response.user));

            return((TLUser)request.Response.user);
        }
Пример #2
0
        public async Task <TLUser> SignUpAsync(string phoneNumber, string phoneCodeHash, string firstName, string lastName, CancellationToken token = default(CancellationToken))
        {
            var request = new TLRequestSignUp()
            {
                PhoneNumber = phoneNumber, PhoneCodeHash = phoneCodeHash, FirstName = firstName, LastName = lastName
            };

            await RequestWithDcMigration(request, token).ConfigureAwait(false);

            if (!(request.Response is TLAuthorization authorization))
            {
                throw new InvalidOperationException("User is not registered");
            }

            var user = (TLUser)authorization.User;

            OnUserAuthenticated(user);

            return(user);
        }
Пример #3
0
        public async Task <TLUser> MakeAuthAsync(string phoneNumber, string phoneCodeHash, string code, string firstName = "", string lastName = "", CancellationToken token = default(CancellationToken))
        {
            if (String.IsNullOrWhiteSpace(phoneNumber))
            {
                throw new ArgumentNullException(nameof(phoneNumber));
            }

            if (String.IsNullOrWhiteSpace(phoneCodeHash))
            {
                throw new ArgumentNullException(nameof(phoneCodeHash));
            }

            if (String.IsNullOrWhiteSpace(code))
            {
                throw new ArgumentNullException(nameof(code));
            }

            var request = new TLRequestSignIn()
            {
                PhoneNumber = phoneNumber, PhoneCodeHash = phoneCodeHash, PhoneCode = code
            };

            await RequestWithDcMigration(request, token).ConfigureAwait(false);

            if (request.Response is TLAuthorization)
            {
                OnUserAuthenticated(((TLUser)((TLAuthorization)request.Response).User));
                return((TLUser)((TLAuthorization)request.Response).User);
            }
            else
            {
                var signUpRequest = new TLRequestSignUp()
                {
                    PhoneNumber = phoneNumber, PhoneCodeHash = phoneCodeHash, FirstName = firstName, LastName = lastName
                };
                await RequestWithDcMigration(signUpRequest, token).ConfigureAwait(false);

                OnUserAuthenticated((TLUser)signUpRequest.Response.User);
                return((TLUser)signUpRequest.Response.User);
            }
        }