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());
        }
Exemplo n.º 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
     }));
 }
Exemplo n.º 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;
            }
        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();
        }
Exemplo n.º 5
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(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,
     }));
 }
Exemplo n.º 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);
        }
        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();
        }