private void UploadToImpl(Action <byte[], Action <BackendResult <Photo, ResultCode> >, Action <double>, Cancellation> uploadAction, byte[] bytes, Action completionCallback, Action <double> progressCallback) { this._c = new Cancellation(); this.UploadProgress = 0.0; uploadAction.Invoke(bytes, (Action <BackendResult <Photo, ResultCode> >)(res => { if (res.ResultCode == ResultCode.Succeeded) { Photo resultData = res.ResultData; this._attachmentId = OutboundPhotoAttachment.ComposeAttachmentId(resultData.owner_id, resultData.pid, resultData.access_key); this._photo = res.ResultData; MemoryStream memoryStream = new MemoryStream(bytes); ImageCache.Current.TrySetImageForUri(this._localUri, (Stream)memoryStream); memoryStream.Close(); this.UploadState = OutboundAttachmentUploadState.Completed; completionCallback.Invoke(); } else { Logger.Instance.Info("!!!!!!!!!!!!FAILED TO UPLOAD", new object[0]); this.UploadState = OutboundAttachmentUploadState.Failed; if (this._retryFlag) { this._retryFlag = false; this.Upload(completionCallback, null); } else { completionCallback.Invoke(); } } }), (Action <double>)(progress => { this.UploadProgress = progress; if (progressCallback == null) { return; } progressCallback(progress); }), this._c); }
public static OutboundPhotoAttachment CreateForChoosingExistingPhoto(Photo photo, long userOrGroupId = 0, bool isGroup = false, PostType postType = PostType.WallPost) { OutboundPhotoAttachment outboundPhotoAttachment = new OutboundPhotoAttachment(); outboundPhotoAttachment._userOrGroupId = userOrGroupId; outboundPhotoAttachment._isGroup = isGroup; string str = OutboundPhotoAttachment.ComposeAttachmentId(photo.owner_id, photo.pid, photo.access_key); outboundPhotoAttachment._attachmentId = str; string srcBig = photo.src_big; outboundPhotoAttachment._localUri = srcBig; int num1 = 3; outboundPhotoAttachment.UploadState = (OutboundAttachmentUploadState)num1; int num2 = (int)postType; outboundPhotoAttachment._postType = (PostType)num2; Photo photo1 = photo; outboundPhotoAttachment._photo = photo1; return(outboundPhotoAttachment); }