private void AddMsg(TlMessage message, Stack <Message> messages, string senderName) { var msg = _ioc.Resolve <Message>(); string text = message.GetTextMessage(); msg.FillValues(senderName, text, message.TimeUnixToWindows(true)); messages.Push(msg); }
public static string GetTextMessage(this TlMessage message) { string text = String.Empty; if (message.Media != null) { switch (message.Media) { case TlMessageMediaDocument document: text = $"{(document.Document as TlDocument).Attributes.Lists.OfType<TlDocumentAttributeFilename>().FirstOrDefault().FileName} {document.Caption}"; break; case TlMessageMediaPhoto photo: text = $"[Photo] {photo.Caption}"; break; } } else { text = message.Message; } return(text); }
public static int GetSenderId(this TlMessage tlMessage) { int id = tlMessage.FromId ?? -1; if (id == -1) { var receiver = tlMessage.ToId; switch (receiver) { case TlPeerChannel channel: id = channel.ChannelId; break; case TlPeerChat chat: id = chat.ChatId; break; case TlPeerUser user: id = user.UserId; break; } } return(id); }
public static DateTime TimeUnixToWindows(this TlMessage message, bool isLocal) { return(DateTimeService.TimeUnixToWindows(message.Date, isLocal)); }