public async Task <bool> EnterIncomingCode(string code)
        {
            try
            {
                TlUser tlUser = await _client.MakeAuthAsync(_phoneNumber, _hash, code);

                Contact currentUser = new Contact
                {
                    FirstName   = tlUser.FirstName,
                    LastName    = tlUser.LastName,
                    PhoneNumber = tlUser.Phone,
                    Id          = tlUser.Id
                };
                string info = JsonConvert.SerializeObject(currentUser);

                using (var file = File.OpenWrite("currentUser.json"))
                {
                    using (StreamWriter sw = new StreamWriter(file))
                    {
                        sw.Write(info);
                    }
                }
                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return(false);
            }
        }
        private static void OnUserAuthenticated(IComponentContext container, TlUser tlUser)
        {
            var clientSettings = container.Resolve <IClientSettings>();

            Guard.That(clientSettings).IsNotNull();

            var session = clientSettings.Session;

            Guard.That(session).IsNotNull();

            session.TlUser         = tlUser;
            session.SessionExpires = int.MaxValue;

            var sessionStore = container.Resolve <ISessionStore>();

            sessionStore.Save();
        }
Esempio n. 3
0
        public static Session FromBytes(byte[] buffer, string sessionUserId)
        {
            using (var stream = new MemoryStream(buffer))
                using (var reader = new BinaryReader(stream))
                {
                    var id            = reader.ReadUInt64();
                    var sequence      = reader.ReadInt32();
                    var salt          = reader.ReadUInt64();
                    var timeOffset    = reader.ReadInt32();
                    var serverAddress = Serializers.String.Read(reader);
                    var port          = reader.ReadInt32();

                    var    isAuthExsist   = reader.ReadInt32() == 1;
                    var    sessionExpires = 0;
                    TlUser tlUser         = null;
                    if (isAuthExsist)
                    {
                        sessionExpires = reader.ReadInt32();
                        tlUser         = (TlUser)ObjectUtils.DeserializeObject(reader);
                    }

                    var authData = Serializers.Bytes.Read(reader);

                    return(new Session
                    {
                        AuthKey = new AuthKey(authData),
                        Id = id,
                        Salt = salt,
                        TimeOffset = timeOffset,
                        SessionSeqNo = sequence,
                        SessionExpires = sessionExpires,
                        TlUser = tlUser,
                        SessionUserId = sessionUserId,
                        ServerAddress = serverAddress,
                        Port = port
                    });
                }
        }
 private async Task SendMessage(ITelegramClient client, TlUser user)
 {
     await client.SendMessageAsync(new TlInputPeerUser { UserId = user.Id }, "TEST_" + Random.Next());
 }