Ejemplo n.º 1
0
        internal async Task <LCIMPartiallySuccessResult> UnblockMembers(string convId,
                                                                        IEnumerable <string> clientIds)
        {
            BlacklistCommand blacklist = new BlacklistCommand {
                SrcCid = convId,
            };

            blacklist.ToPids.AddRange(clientIds);
            if (Client.SignatureFactory != null)
            {
                LCIMSignature signature = await Client.SignatureFactory.CreateBlacklistSignature(convId,
                                                                                                 Client.Id,
                                                                                                 clientIds,
                                                                                                 LCIMSignatureAction.ConversationUnblockClients);

                blacklist.S = signature.Signature;
                blacklist.T = signature.Timestamp;
                blacklist.N = signature.Nonce;
            }
            GenericCommand request = NewCommand(CommandType.Blacklist, OpType.Unblock);

            request.BlacklistMessage = blacklist;
            GenericCommand response = await Connection.SendRequest(request);

            return(NewPartiallySuccessResult(response.BlacklistMessage.AllowedPids, response.BlacklistMessage.FailedPids));
        }
Ejemplo n.º 2
0
        internal async Task <LCIMPageResult> QueryBlockedMembers(string convId,
                                                                 int limit   = 10,
                                                                 string next = null)
        {
            BlacklistCommand black = new BlacklistCommand {
                SrcCid = convId,
                Limit  = limit
            };

            if (next != null)
            {
                black.Next = next;
            }
            GenericCommand request = NewCommand(CommandType.Blacklist, OpType.Query);

            request.BlacklistMessage = black;
            GenericCommand response = await Connection.SendRequest(request);

            return(new LCIMPageResult {
                Results = new ReadOnlyCollection <string>(response.BlacklistMessage.BlockedPids),
                Next = response.BlacklistMessage.Next
            });
        }