Exemplo n.º 1
0
        public async Task AddUserAsync(Chat chat, User user)
        {
            CheckUser(user);
            TLMethod r;

            if (chat.IsChannel)
            {
                r = new TLRequestInviteToChannel
                {
                    channel = new TLInputChannel {
                        channel_id = chat.Id, access_hash = chat.AccessHash.Value
                    },
                    users = new TLVector <TLAbsInputUser>
                    {
                        lists = new List <TLAbsInputUser> {
                            new TLInputUser {
                                user_id = user.Id, access_hash = user.AccessHash.Value
                            }
                        }
                    }
                };
            }
            else
            {
                r = new TLRequestAddChatUser
                {
                    user_id = new TLInputUser {
                        user_id = user.Id, access_hash = user.AccessHash.Value
                    },
                    chat_id = chat.Id
                };
            }

            await _telegramClient.SendRequestAsync <object>(r);
        }
Exemplo n.º 2
0
        public async Task <bool> AddChannelUser(int channelId, long channelHash, int userId, long userHash)
        {
            await client.ConnectAsync();

            TLRequestInviteToChannel req = new TLRequestInviteToChannel
            {
                channel = new TLInputChannel
                {
                    access_hash = channelHash,
                    channel_id  = channelId
                },
                users = new TLVector <TLAbsInputUser>
                {
                    lists = new List <TLAbsInputUser>
                    {
                        new TLInputUser
                        {
                            access_hash = userHash,
                            user_id     = userId
                        }
                    }
                }
            };

            try
            {
                TLUpdates result = await client.SendRequestAsync <TLUpdates>(req);

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
Exemplo n.º 3
0
        public async Task AddUserToGroupAsync(UserManipulationInChannelOrGroupDto model)
        {
            var user = await GetUserAsync(model.Login);

            var group = await GetGroupAsync(model.Title);

            //generate request of adding
            var request = new TLRequestInviteToChannel
            {
                Channel = new TLInputChannel
                {
                    ChannelId  = group.Id,
                    AccessHash = group.AccessHash.Value
                },
                Users = new TLVector <TLAbsInputUser>
                {
                    new TLInputUser
                    {
                        UserId     = user.Id,
                        AccessHash = user.AccessHash.Value
                    }
                }
            };

            await client.SendRequestAsync <object>(request);
        }
Exemplo n.º 4
0
        public async Task AddUserAsync(TLChannel channel, User user)
        {
            if (!channel.access_hash.HasValue)
            {
                return;
            }
            CheckUser(user);

            var r = new TLRequestInviteToChannel
            {
                channel = new TLInputChannel {
                    channel_id = channel.id, access_hash = channel.access_hash.Value
                },
                users = new TLVector <TLAbsInputUser> {
                    lists = new List <TLAbsInputUser> {
                        new TLInputUser {
                            user_id = user.Id, access_hash = user.AccessHash.Value
                        }
                    }
                }
            };

            await _telegramClient.SendRequestAsync <object>(r);
        }
Exemplo n.º 5
0
        public virtual async Task addMemmberTest()
        {
            NumberToSendMessage = ConfigurationManager.AppSettings[MemberInfoGetting.GetMemberName(() => NumberToSendMessage)];
            if (string.IsNullOrWhiteSpace(NumberToSendMessage))
            {
                throw new Exception("Please fill the" + MemberInfoGetting.GetMemberName(() => NumberToSendMessage) + " setting in app.config file first");
            }

            // this is because the contacts in the address come without the "+" prefix
            var normalizedNumber = NumberToSendMessage.StartsWith("+") ?
                                   NumberToSendMessage.Substring(1, NumberToSendMessage.Length - 1) :
                                   NumberToSendMessage;

            var client = NewClient();

            await client.ConnectAsync();

            var result = await client.GetContactsAsync();


            var user = result.Users
                       .OfType <TLUser>()
                       .FirstOrDefault(x => x.Phone == normalizedNumber);

            if (user == null)
            {
                throw new System.Exception("Number was not found in Contacts List of user: "******"khune");
            int b = 5;

            TLInputUser u = new TLInputUser()
            {
                UserId = user.Id, AccessHash = (long)user.AccessHash
            };
            int a = 5;
            await client.ConnectAsync();

            //var req = new TLRequestAddChatUser()
            //{
            //    ChatId = chat.Id,
            //    UserId = u,
            //    FwdLimit = 100
            //};
            TLVector <TLAbsInputUser>    u2 = new TLVector <TLAbsInputUser>();
            TLVector <TLAbsInputChannel> c2 = new TLVector <TLAbsInputChannel>();

            u2.Add(u);
            c2.Add(new TLInputChannel()
            {
                ChannelId = chat.Id, AccessHash = (long)chat.AccessHash
            });
            var req2 = new TLRequestInviteToChannel()
            {
                //Channel = new TLInputChannel() { ChannelId = chat.Id },
                Channel = c2[0],
                Users   = u2
            };
            await client.ConnectAsync();

            try
            {
                var update = await client.SendRequestAsync <TLUpdates>(req2);
            }

            catch (Exception e)
            {
                //MessageBox.Show(e.ToString());
            }
            int a2 = 5;
        }