コード例 #1
0
        public Task <ContentDialogResult> ShowAsync(IProtoService protoService, long supergroupId, ChatEventLogFilters filters, IList <long> userIds)
        {
            _protoService = protoService;
            _cacheService = protoService;

            if (filters == null)
            {
                filters = new ChatEventLogFilters(true, true, true, true, true, true, true, true, true, true, true, true);
            }

            MemberRestrictions.IsChecked = filters.MemberRestrictions;
            MemberPromotions.IsChecked   = filters.MemberPromotions;
            MemberJoins.IsChecked        = filters.MemberJoins || filters.MemberInvites;
            InfoChanges.IsChecked        = filters.InfoChanges || filters.SettingChanges;
            InviteLinkChanges.IsChecked  = filters.InviteLinkChanges;
            MessageDeletions.IsChecked   = filters.MessageDeletions;
            MessageEdits.IsChecked       = filters.MessageEdits;
            MessagePins.IsChecked        = filters.MessagePins;
            MemberLeaves.IsChecked       = filters.MemberLeaves;
            VideoChatChanges.IsChecked   = filters.VideoChatChanges;

            Event_Toggled(null, null);

            protoService.Send(new GetSupergroupMembers(supergroupId, new SupergroupMembersFilterAdministrators(), 0, 200), response =>
            {
                if (response is ChatMembers members)
                {
                    this.BeginOnUIThread(() =>
                    {
                        List.Items.Clear();

                        foreach (var item in members.Members)
                        {
                            if (item.MemberId is MessageSenderUser senderUser)
                            {
                                List.Items.Add(item);

                                if (userIds.Contains(senderUser.UserId))
                                {
                                    List.SelectedItems.Add(item);
                                }
                            }
                        }

                        if (List.SelectedItems.Count > 0)
                        {
                            FieldAllAdmins.IsChecked = null;
                        }
                        else
                        {
                            FieldAllAdmins.IsChecked = true;
                            List.SelectAll();
                        }
                    });
                }
            });

            //List.ItemsSource = new ChatMemberCollection(protoService, supergroupId, new SupergroupMembersFilterAdministrators());
            return(this.ShowQueuedAsync());
        }
コード例 #2
0
 /// <summary>
 /// Returns a list of service actions taken by chat members and administrators in the last 48 hours. Available only for supergroups and channels. Requires administrator rights. Returns results in reverse chronological order (i. e., in order of decreasing event_id)
 /// </summary>
 public static Task <ChatEvents> GetChatEventLogAsync(
     this Client client, long chatId = default, string query = default, long fromEventId = default,
     int limit = default, ChatEventLogFilters filters        = default, long[] userIds   = default)
 {
     return(client.ExecuteAsync(new GetChatEventLog
     {
         ChatId = chatId, Query = query, FromEventId = fromEventId, Limit = limit, Filters = filters,
         UserIds = userIds
     }));
 }
コード例 #3
0
            public ItemsCollection(IProtoService protoService, IMessageDelegate delegato, long chatId, bool channel, ChatEventLogFilters filters, IList <int> userIds)
            {
                _protoService = protoService;
                _delegate     = delegato;
                _chatId       = chatId;
                _channel      = channel;
                _filters      = filters;
                _userIds      = userIds;

                _hasMore = true;
            }
コード例 #4
0
        private void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
        {
            Filters = new ChatEventLogFilters
            {
                MemberRestrictions = MemberRestrictions.IsChecked == true,
                MemberPromotions   = MemberPromotions.IsChecked == true,
                MemberJoins        = MemberJoins.IsChecked == true,
                InfoChanges        = InfoChanges.IsChecked == true,
                SettingChanges     = InfoChanges.IsChecked == true,
                MessageDeletions   = MessageDeletions.IsChecked == true,
                MessageEdits       = MessageEdits.IsChecked == true,
                MessagePins        = MessagePins.IsChecked == true,
                MemberLeaves       = MemberLeaves.IsChecked == true,
            };

            UserIds = List.SelectedItems.OfType <ChatMember>().Select(x => x.UserId).ToList();
        }
コード例 #5
0
ファイル: GetChatEventLog.cs プロジェクト: studasd/tdsharp
 /// <summary>
 /// Returns a list of service actions taken by chat members and administrators in the last 48 hours. Available only for supergroups and channels. Requires administrator rights. Returns results in reverse chronological order (i. e., in order of decreasing event_id)
 /// </summary>
 public static Task <ChatEvents> GetChatEventLogAsync(this Client client,
                                                      long chatId                 = default(long),
                                                      string query                = default(string),
                                                      Int64 fromEventId           = default(Int64),
                                                      int limit                   = default(int),
                                                      ChatEventLogFilters filters = default(ChatEventLogFilters),
                                                      int[] userIds               = default(int[]))
 {
     return(client.ExecuteAsync(new GetChatEventLog
     {
         ChatId = chatId,
         Query = query,
         FromEventId = fromEventId,
         Limit = limit,
         Filters = filters,
         UserIds = userIds,
     }));
 }
コード例 #6
0
        private string ConvertSubtitle(ChatEventLogFilters filters, IList <int> userIds)
        {
            if (filters.InfoChanges &&
                filters.MemberInvites &&
                filters.MemberJoins &&
                filters.MemberLeaves &&
                filters.MemberPromotions &&
                filters.MemberRestrictions &&
                filters.MessageDeletions &&
                filters.MessageEdits &&
                filters.MessagePins &&
                filters.SettingChanges &&
                userIds.IsEmpty())
            {
                return(Strings.Resources.EventLogAllEvents);
            }

            return(Strings.Resources.EventLogSelectedEvents);
        }
コード例 #7
0
        private void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
        {
            Filters = new ChatEventLogFilters
            {
                MemberRestrictions = MemberRestrictions.IsChecked == true,
                MemberPromotions   = MemberPromotions.IsChecked == true,
                MemberJoins        = MemberJoins.IsChecked == true,
                MemberInvites      = MemberJoins.IsChecked == true,
                InfoChanges        = InfoChanges.IsChecked == true,
                SettingChanges     = InfoChanges.IsChecked == true,
                MessageDeletions   = MessageDeletions.IsChecked == true,
                MessageEdits       = MessageEdits.IsChecked == true,
                MessagePins        = MessagePins.IsChecked == true,
                MemberLeaves       = MemberLeaves.IsChecked == true,
            };

            var areAllAdministratorsSelected = List.Items.All(x => List.SelectedItems.Contains(x));

            UserIds = areAllAdministratorsSelected ? new long[0] : List.SelectedItems.OfType <ChatMember>().Select(x => x.MemberId).OfType <MessageSenderUser>().Select(x => x.UserId).ToArray();
        }