private void OnOpenAttachment(object sender, GestureEventArgs e) { var element = (FrameworkElement)sender; MessageModel message = (MessageModel)element.DataContext; if (!(message is MessageModelDelivered)) { return; } MessageMedia media = ((MessageModelDelivered)message).MessageMedia; MediaTransitionHelper.Instance.Media = media; if (media.Constructor == Constructor.messageMediaPhoto || media.Constructor == Constructor.messageMediaVideo) { NavigationService.Navigate(new Uri("/UI/Pages/MediaViewPage.xaml", UriKind.Relative)); } else if (media.Constructor == Constructor.messageMediaGeo) { MediaTransitionHelper.Instance.From = message.Sender; NavigationService.Navigate(new Uri("/UI/Pages/MapViewPage.xaml?mode=view", UriKind.Relative)); } }
private void OnContactTap(object sender, GestureEventArgs e) { var element = (FrameworkElement)sender; MessageModel message = (MessageModel)element.DataContext; if (!(message is MessageModelDelivered)) { return; } MessageModelDelivered messageDelivered = (MessageModelDelivered)message; MessageMedia media = messageDelivered.MessageMedia; if (media.Constructor != Constructor.messageMediaContact) { return; } MessageMediaContactConstructor mediaContact = (MessageMediaContactConstructor)media; SaveContactTask saveContactTask = new SaveContactTask(); saveContactTask.Completed += new EventHandler <SaveContactResult>(saveContactTask_Completed); saveContactTask.FirstName = mediaContact.first_name; saveContactTask.LastName = mediaContact.last_name; saveContactTask.MobilePhone = "+" + mediaContact.phone_number; saveContactTask.Show(); }
public TgMedia Map(MessageMedia media) { var photo = (media as MessageMediaPhotoConstructor)?.photo; var photoConstructor = photo as PhotoConstructor; return(photoConstructor == null ? null : MapInternal(photoConstructor)); }
public TgMedia Map(MessageMedia media) { var audio = (media as MessageMediaAudioConstructor)?.audio; var audioConstructor = audio as AudioConstructor; return(audioConstructor == null ? null : MapInternal(audioConstructor)); }
public PinchAndZoom() { InitializeComponent(); media = MediaTransitionHelper.Instance.Media; if (media.Constructor == Constructor.messageMediaPhoto) { ImageViewportElement.Visibility = Visibility.Visible; PlaybackControls.Visibility = Visibility.Collapsed; MessageMediaPhotoConstructor cons = (MessageMediaPhotoConstructor)media; if (cons.photo.Constructor == Constructor.photoEmpty) { } else if (cons.photo.Constructor == Constructor.photo) { PhotoConstructor photoConstructor = (PhotoConstructor)cons.photo; author = TelegramSession.Instance.GetUser(photoConstructor.user_id); MetaInfoAuthor.Text = author.FullName; MetaInfoDate.Text = Formatters.FormatDialogDateTimestampUnix(photoConstructor.date); } DoLoadPhoto(); return; } else if (media.Constructor == Constructor.messageMediaVideo) { ImageViewportElement.Visibility = Visibility.Collapsed; PlaybackControls.Visibility = Visibility.Visible; VideoPlayerElement.Visibility = Visibility.Visible; PlaybackButton.Visibility = Visibility.Visible; MessageMediaVideoConstructor cons = (MessageMediaVideoConstructor)media; if (cons.video.Constructor == Constructor.videoEmpty) { } else if (cons.video.Constructor == Constructor.video) { VideoConstructor videoConstructor = (VideoConstructor)cons.video; author = TelegramSession.Instance.GetUser(videoConstructor.user_id); MetaInfoAuthor.Text = author.FullName; MetaInfoDate.Text = Formatters.FormatDialogDateTimestampUnix(videoConstructor.date); } VideoPlayerElement.MediaEnded += delegate { PlaybackButton.Visibility = Visibility.Visible; }; } else { return; } }
public GeoChatMessageConstructor(int chat_id, int id, int from_id, int date, string message, MessageMedia media) { this.chat_id = chat_id; this.id = id; this.from_id = from_id; this.date = date; this.message = message; this.media = media; }
public override void Read(BinaryReader reader) { this.chat_id = reader.ReadInt32(); this.id = reader.ReadInt32(); this.from_id = reader.ReadInt32(); this.date = reader.ReadInt32(); this.message = Serializers.String.read(reader); this.media = Tl.Parse <MessageMedia>(reader); }
private static MessageMedia Parse(TMessageMediaContact messageMediaContact) { var media = new MessageMedia() { Type = TelegramMediaType.MediaContact }; media.Attibutes.Add(new DocumentAttribute(nameof(messageMediaContact.FirstName), messageMediaContact.FirstName)); media.Attibutes.Add(new DocumentAttribute(nameof(messageMediaContact.PhoneNumber), messageMediaContact.PhoneNumber)); return(media); }
private static MessageMedia Parse(TMessageMediaGeo messageMediaGeo) { var point = messageMediaGeo.Geo.As <TGeoPoint>(); var media = new MessageMedia() { Type = TelegramMediaType.Geo }; media.Attibutes.Add(new DocumentAttribute("Lat", point.Lat.ToString())); media.Attibutes.Add(new DocumentAttribute("Long", point.Long.ToString())); return(media); }
public override void Read(BinaryReader reader) { this.id = reader.ReadInt32(); this.fwd_from_id = reader.ReadInt32(); this.fwd_date = reader.ReadInt32(); this.from_id = reader.ReadInt32(); this.to_id = reader.ReadInt32(); this.output = reader.ReadUInt32() == 0x997275b5; this.unread = reader.ReadUInt32() == 0x997275b5; this.date = reader.ReadInt32(); this.message = Serializers.String.read(reader); this.media = Tl.Parse <MessageMedia>(reader); }
public MessageForwardedConstructor(int id, int fwd_from_id, int fwd_date, int from_id, int to_id, bool output, bool unread, int date, string message, MessageMedia media) { this.id = id; this.fwd_from_id = fwd_from_id; this.fwd_date = fwd_date; this.from_id = from_id; this.to_id = to_id; this.output = output; this.unread = unread; this.date = date; this.message = message; this.media = media; }
internal static string Combine(string message, MessageMedia media) { string s = message; if (media != null && media.Constructor != Constructor.messageMediaEmpty) { if (!String.IsNullOrEmpty(s)) { s += " "; } s += '<' + media.Constructor.ToString() + '>'; } return(s); }
public PinchAndZoom() { InitializeComponent(); media = MediaTransitionHelper.Instance.Media; if (media.Constructor == Constructor.messageMediaPhoto) { ImageViewportElement.Visibility = Visibility.Visible; PlaybackControls.Visibility = Visibility.Collapsed; MessageMediaPhotoConstructor cons = (MessageMediaPhotoConstructor) media; if (cons.photo.Constructor == Constructor.photoEmpty) { } else if (cons.photo.Constructor == Constructor.photo) { PhotoConstructor photoConstructor = (PhotoConstructor) cons.photo; author = TelegramSession.Instance.GetUser(photoConstructor.user_id); MetaInfoAuthor.Text = author.FullName; MetaInfoDate.Text = Formatters.FormatDialogDateTimestampUnix(photoConstructor.date); } DoLoadPhoto(); return; } else if (media.Constructor == Constructor.messageMediaVideo) { ImageViewportElement.Visibility = Visibility.Collapsed; PlaybackControls.Visibility = Visibility.Visible; VideoPlayerElement.Visibility = Visibility.Visible; PlaybackButton.Visibility = Visibility.Visible; MessageMediaVideoConstructor cons = (MessageMediaVideoConstructor) media; if (cons.video.Constructor == Constructor.videoEmpty) { } else if (cons.video.Constructor == Constructor.video) { VideoConstructor videoConstructor = (VideoConstructor) cons.video; author = TelegramSession.Instance.GetUser(videoConstructor.user_id); MetaInfoAuthor.Text = author.FullName; MetaInfoDate.Text = Formatters.FormatDialogDateTimestampUnix(videoConstructor.date); } VideoPlayerElement.MediaEnded += delegate { PlaybackButton.Visibility = Visibility.Visible; }; } else { return; } }
public async Task <IActionResult> Send(UserStatus[] status, string role, MessageMedia media, string subject, string messageBody, string smsBody) { var usersToReceiveMessage = userManager.Users.Where(user => status.Contains(user.Status)).ToHashSet(); if (!String.IsNullOrEmpty(role)) { usersToReceiveMessage.UnionWith(await userManager.GetUsersInRoleAsync(role)); } if (media == MessageMedia.SMS || media == MessageMedia.EmailSMS) { var userPhonenumbers = usersToReceiveMessage.Where(user => !string.IsNullOrEmpty(user?.PhoneNumber)).Select(user => user.PhoneNumber).ToArray(); var result = await smsSender.SendSmsAsync(smsBody, userPhonenumbers); } if (media == MessageMedia.Email || media == MessageMedia.EmailSMS) { var mails = usersToReceiveMessage.Where(user => !string.IsNullOrEmpty(user?.Email)).Select(user => user.Email).ToArray(); await emailSender.SendEmailAsync(string.Join(";", mails), subject, messageBody); } return(RedirectToAction(nameof(Index))); }
public MapViewPage() { InitializeComponent(); myPositionLayer.Add(myMapOverlay); Map.Layers.Add(myPositionLayer); ZoomLevel = 16; Map.ZoomLevel = ZoomLevel; GetMyMapLocationAsync(); DataContext = MediaTransitionHelper.Instance.From; MessageMedia media = MediaTransitionHelper.Instance.Media; MessageMediaGeoConstructor geoMedia = (MessageMediaGeoConstructor)media; point = (GeoPointConstructor)geoMedia.geo; userGeoCoordinate = new GeoCoordinate(point.lat, point.lng); AddPushpin(userGeoCoordinate, MediaTransitionHelper.Instance.From.FullName); CalculateDistanceBetweenMeAndUser(); UserInfoClick(this, null); }
private static MessageMedia Parse(TMessageMediaDocument messageMediaDocument) { var document = messageMediaDocument.Document.As <TDocument>(); var messageMedia = new MessageMedia() { Files = new List <File>() { new File() { Size = document.Size, //Location = new TInputDocumentFileLocation() //{ // Id = document.Id, // AccessHash = document.AccessHash, //} } }, Type = TelegramMediaType.Document }; messageMedia.Attibutes = document.Attributes.ForEach(attribute => { return(DocumentAttributeParser.Parse(attribute)); }).SelectMany(list => list).ToList(); return(messageMedia); }
public TgMedia Map(MessageMedia media) => null;
private void OnDialogSelected(object sender, DialogModel model) { InputPeer inputPeer = null; if (!(model is DialogModelPlain)) { return; } DialogModelPlain dmp = (DialogModelPlain)model; if (fromMedia == 1) { MessageMedia media = MediaTransitionHelper.Instance.Media; InputMedia im = null; if (media.Constructor == Constructor.messageMediaPhoto) { MessageMediaPhotoConstructor mmpc = (MessageMediaPhotoConstructor)media; InputPhoto ip = TL.inputPhoto(((PhotoConstructor)mmpc.photo).id, ((PhotoConstructor)mmpc.photo).access_hash); im = TL.inputMediaPhoto(ip); } else if (media.Constructor == Constructor.messageMediaVideo) { MessageMediaVideoConstructor mmvc = (MessageMediaVideoConstructor)media; InputVideo iv = TL.inputVideo(((VideoConstructor)mmvc.video).id, ((VideoConstructor)mmvc.video).access_hash); im = TL.inputMediaVideo(iv); } else if (media.Constructor == Constructor.messageMediaGeo) { MessageMediaGeoConstructor mmgc = (MessageMediaGeoConstructor)media; GeoPointConstructor gpc = (GeoPointConstructor)mmgc.geo; InputGeoPoint point = TL.inputGeoPoint(gpc.lat, gpc.lng); im = TL.inputMediaGeoPoint(point); } if (im != null) { dmp.SendMedia(im); NavigationService.GoBack(); } return; } if (messageId.Count == 0) { logger.error("error forwarding, no messageId"); } Peer peer = model.Peer; if (model.IsChat) { inputPeer = TL.inputPeerChat(((PeerChatConstructor)peer).chat_id); } else { inputPeer = TL.inputPeerContact(((PeerUserConstructor)peer).user_id); } DoForwardMessages(inputPeer); int modelId = TelegramSession.Instance.Dialogs.Model.Dialogs.IndexOf(model); NavigationService.Navigate(new Uri("/UI/Pages/DialogPage.xaml?modelId=" + modelId, UriKind.Relative)); }