Esempio n. 1
0
        private async Task <bool> SendMessage(int Id, string Message, ePeerType PeerType = ePeerType.User)
        {
            var peer = this.GetPeer(Id, PeerType);

            await this.Client.SendMessageAsync(peer, Message);

            return(true);
        }
Esempio n. 2
0
        // TODO ->> Cast
        private async Task <bool> SendMedia(int Id, IMediaItem MediaItem, ePeerType PeerType = ePeerType.User)
        {
            TLAbsInputMedia media = new TLInputMediaEmpty();

            /// TODO ->> ??
            /// this.Client.SendUploadedDocument(<inputPeer>, <inputFile>, <title>, <mimeType>, <attributes>)
            /// this.Client.SendUploadedPhoto(<inputPeer>, <inputFile>, <title>)

            if (MediaItem is PhotoURL)
            {
                media = (TLInputMediaPhotoExternal)MediaItem;
            }

            await this.Client.SendRequestAsync <TLUpdates>(new TLRequestSendMedia
            {
                Peer  = this.GetPeer(Id, PeerType),
                Media = media
            });

            return(true);
        }
Esempio n. 3
0
        private TLAbsInputPeer GetPeer(int Id, ePeerType PeerType)
        {
            switch (PeerType)
            {
            case ePeerType.Self: return(new TLInputPeerSelf {
                });

            case ePeerType.User: return(new TLInputPeerUser {
                    UserId = Id
                });

            case ePeerType.Group: return(new TLInputPeerChat {
                    ChatId = Id
                });

            case ePeerType.Channel: return(new TLInputPeerChannel {
                    ChannelId = Id
                });

            default:
            case ePeerType.NULL: return(new TLInputPeerEmpty());
            }
        }
Esempio n. 4
0
        private async Task <bool> UpdateMessagePinState(int MessageId, bool PinState, int PeerId, ePeerType PeerType = ePeerType.User)
        {
            await this.Client.SendRequestAsync <TLUpdates>(new TLRequestToggleDialogPin
            {
                MessageId = MessageId,
                Peer      = this.GetPeer(PeerId, PeerType),
                Pinned    = PinState
            });

            return(true);
        }
Esempio n. 5
0
        private async Task <IEnumerable <Message> > GetHistory(int Id, int Limit = 100, ePeerType PeerType = ePeerType.User)
        {
            var historyAbs = await this.Client.SendRequestAsync <TLAbsMessages>(new TLRequestGetHistory
            {
                Peer  = this.GetPeer(Id, PeerType),
                Limit = Limit,
            });

            var historyMessagesAbs = (historyAbs is TLMessages) ? (historyAbs as TLMessages).Messages : (historyAbs as TLMessagesSlice).Messages;
            var historyMessages    = historyMessagesAbs.Where(x => x is TLMessage).Select(x => (Message)x) ?? new List <Message>();

            return(historyMessages);
        }