private void SendContactInternal(TLMessageBase message) { var message25 = message as TLMessage25; if (message25 == null) { return; } var mediaContact = message25.Media as TLMessageMediaContact; if (mediaContact == null) { return; } var inputMediaContact = new TLInputMediaContact { FirstName = mediaContact.FirstName, LastName = mediaContact.LastName, PhoneNumber = mediaContact.PhoneNumber }; message25.InputMedia = inputMediaContact; ShellViewModel.SendMediaInternal(message25, MTProtoService, StateService, CacheService); }
public override async Task <TlFileToSend> GetMediaTl(TelegramClient telegramClient) { var r = new TLInputMediaContact { FirstName = _firstName, LastName = _lastName, PhoneNumber = _phoneNumber }; return(new TlFileToSend(r)); }
public Task <bool> SendContactAsync(TLUser user) { var tsc = new TaskCompletionSource <bool>(); var date = TLUtils.DateToUniversalTimeTLInt(ProtoService.ClientTicksDelta, DateTime.Now); var media = new TLMessageMediaContact { PhoneNumber = user.Phone, FirstName = user.FirstName, LastName = user.LastName, UserId = user.Id, }; var message = TLUtils.GetMessage(SettingsHelper.UserId, Peer.ToPeer(), TLMessageState.Sending, true, true, date, string.Empty, media, TLLong.Random(), null); if (Reply != null) { message.HasReplyToMsgId = true; message.ReplyToMsgId = Reply.Id; message.Reply = Reply; Reply = null; } var previousMessage = InsertSendingMessage(message); CacheService.SyncSendingMessage(message, previousMessage, async(m) => { var inputMedia = new TLInputMediaContact { PhoneNumber = user.Phone, FirstName = user.FirstName, LastName = user.LastName }; var result = await ProtoService.SendMediaAsync(Peer, inputMedia, message); if (result.IsSucceeded) { tsc.SetResult(true); } else { tsc.SetResult(false); } }); return(tsc.Task); }