public void CloseEditor() { _isOpen = false; NotifyOfPropertyChange(() => IsOpen); _currentItem = null; }
private void CheckChannelMessage(TLMessage25 message) { var channel = With as TLChannel; if (IsChannelMessage || (channel != null && channel.IsBroadcast)) { var message36 = message as TLMessage36; if (message36 != null) { if (channel != null && !channel.Signatures) { message36.FromId = new TLInt(-1); } message36.Views = new TLInt(1); } } var channel44 = channel as TLChannel44; if (channel44 != null && channel44.IsBroadcast && channel44.Silent) { var message48 = message as TLMessage48; if (message48 != null && message48.Out.Value) { message48.Silent = true; } } }
private static TLString GetFirstName(TLMessage25 message) { if (message != null) { var fromUser = message.FwdFrom as TLUserBase; if (fromUser != null) { return(fromUser.FirstName); } var fromChat = message.FwdFrom as TLChannel; if (fromChat != null) { return(fromChat.Title); } var fromChatForbidden = message.FwdFrom as TLChannelForbidden; if (fromChatForbidden != null) { return(fromChatForbidden.Title); } } return(null); }
public static string GetFirstName(TLMessage25 message) { var message48 = message as TLMessage48; if (message48 != null) { if (message48.FwdHeader != null) { var cacheService = InMemoryCacheService.Instance; var channelId = message48.FwdHeader.ChannelId; if (channelId != null) { var channel = cacheService.GetChat(message48.FwdHeader.ChannelId) as TLChannel; if (channel != null) { return(channel.Title.ToString()); } } else { var userId = message48.FwdHeader.FromId; if (userId != null) { var fromUser = cacheService.GetUser(message48.FwdHeader.FromId); if (fromUser != null) { return(TLUserBase.GetFirstName(fromUser.FirstName, fromUser.LastName, fromUser.Phone)); } } } } } if (message != null) { var fromUser = message.FwdFrom as TLUserBase; if (fromUser != null) { return(TLUserBase.GetFirstName(fromUser.FirstName, fromUser.LastName, fromUser.Phone)); } var fromChat = message.FwdFrom as TLChannel; if (fromChat != null) { return(fromChat.Title.ToString()); } var fromChatForbidden = message.FwdFrom as TLChannelForbidden; if (fromChatForbidden != null) { return(fromChatForbidden.Title.ToString()); } } return(null); }
private void CheckChannelMessage(TLMessage25 message) { var channel = With as TLChannel; if (IsChannelMessage || (channel != null && channel.IsBroadcast)) { var message36 = message as TLMessage36; if (message36 != null) { message36.FromId = new TLInt(-1); message36.Views = new TLInt(1); } } }
private void ContinueSendPhoto(TLMessage25 message) { BeginOnUIThread(() => { var previousMessage = InsertSendingMessage(message); IsEmptyDialog = Items.Count == 0 && LazyItems.Count == 0; BeginOnThreadPool(() => CacheService.SyncSendingMessage( message, previousMessage, TLUtils.InputPeerToPeer(Peer, StateService.CurrentUserId), m => SendPhotoInternal(message))); }); }
private void SendDocumentInternal(TLMessage25 message, object o) #endif { var document = ((TLMessageMediaDocument)message.Media).Document as TLDocument; if (document == null) { return; } byte[] thumbBytes = null; var thumb = document.Thumb as TLPhotoSize; if (thumb != null) { var thumbLocation = thumb.Location as TLFileLocation; if (thumbLocation != null) { var fileName = String.Format("{0}_{1}_{2}.jpg", thumbLocation.VolumeId, thumbLocation.LocalId, thumbLocation.Secret); using (var store = IsolatedStorageFile.GetUserStoreForApplication()) { using (var fileStream = store.OpenFile(fileName, FileMode.Open, FileAccess.Read)) { thumbBytes = new byte[fileStream.Length]; fileStream.Read(thumbBytes, 0, thumbBytes.Length); } } } } var bytes = document.Buffer; var md5Bytes = Telegram.Api.Helpers.Utils.ComputeMD5(bytes ?? new byte[0]); var md5Checksum = BitConverter.ToInt64(md5Bytes, 0); StateService.GetServerFilesAsync( results => { var serverFile = results.FirstOrDefault(result => result.MD5Checksum.Value == md5Checksum); if (serverFile != null) { message.InputMedia = serverFile.Media; ShellViewModel.SendMediaInternal(message, MTProtoService, StateService, CacheService); } else { if (thumbBytes != null) { var thumbFileId = TLLong.Random(); UploadFileManager.UploadFile(thumbFileId, message.Media, thumbBytes); Thread.Sleep(100); //NOTE: без этой строки не работает. Почему??? } var fileId = TLLong.Random(); message.Media.FileId = fileId; message.Media.UploadingProgress = 0.001; #if WP81 if (file == null) { UploadDocumentFileManager.UploadFile(fileId, message, bytes); } else { UploadDocumentFileManager.UploadFile(fileId, message, file); } #else UploadDocumentFileManager.UploadFile(fileId, message, bytes); #endif } }); }
private void SendDocumentInternal(TLMessage25 message, StorageFile file)
private void SendPhotoInternal(TLMessage25 message) { var photo = ((TLMessageMediaPhoto)message.Media).Photo as TLPhoto; if (photo == null) { return; } var photoSize = photo.Sizes[0] as TLPhotoSize; if (photoSize == null) { return; } var fileLocation = photoSize.Location; if (fileLocation == null) { return; } byte[] bytes = null; var fileName = String.Format("{0}_{1}_{2}.jpg", fileLocation.VolumeId, fileLocation.LocalId, fileLocation.Secret); using (var store = IsolatedStorageFile.GetUserStoreForApplication()) { using (var fileStream = store.OpenFile(fileName, FileMode.Open, FileAccess.Read)) { if (fileStream.Length > 0) { bytes = new byte[fileStream.Length]; fileStream.Read(bytes, 0, bytes.Length); } } } if (bytes == null) { return; } var md5Bytes = Telegram.Api.Helpers.Utils.ComputeMD5(bytes); var md5Checksum = BitConverter.ToInt64(md5Bytes, 0); StateService.GetServerFilesAsync( results => { var serverFile = results.FirstOrDefault(result => result.MD5Checksum.Value == md5Checksum); #if MULTIPLE_PHOTOS serverFile = null; #endif if (serverFile != null) { var media = serverFile.Media; var captionMedia = media as IInputMediaCaption; if (captionMedia == null) { var inputMediaPhoto = serverFile.Media as TLInputMediaPhoto; if (inputMediaPhoto != null) { var inputMediaPhoto28 = new TLInputMediaPhoto28(inputMediaPhoto, TLString.Empty); captionMedia = inputMediaPhoto28; media = inputMediaPhoto28; serverFile.Media = inputMediaPhoto28; StateService.SaveServerFilesAsync(results); } var inputMediaUploadedPhoto = serverFile.Media as TLInputMediaUploadedPhoto; if (inputMediaUploadedPhoto != null) { var inputMediaUploadedPhoto28 = new TLInputMediaUploadedPhoto28(inputMediaUploadedPhoto, TLString.Empty); captionMedia = inputMediaUploadedPhoto28; media = inputMediaUploadedPhoto28; serverFile.Media = inputMediaUploadedPhoto28; StateService.SaveServerFilesAsync(results); } } if (captionMedia != null) { captionMedia.Caption = ((TLMessageMediaPhoto28)message.Media).Caption ?? TLString.Empty; } message.InputMedia = media; ShellViewModel.SendMediaInternal(message, MTProtoService, StateService, CacheService); } else { var fileId = TLLong.Random(); message.Media.FileId = fileId; message.Media.UploadingProgress = 0.001; UploadFileManager.UploadFile(fileId, message, bytes); } }); }