private void UpdateMedia(IUploadedMediaInfo uploadedMediaInfos) { _media.UploadedMediaInfo = uploadedMediaInfos; if (_expectedBinaryLength != null) { // If all the data has not been sent then we do not construct the data if (UploadedSegments.Sum(x => x.Value.Length) == _expectedBinaryLength) { var allSegments = UploadedSegments.OrderBy(x => x.Key); _media.Data = allSegments.SelectMany(x => x.Value).ToArray(); } } }
public bool Append(IChunkUploadAppendParameters parameters) { if (MediaId == null) { throw new InvalidOperationException("You cannot append content to a non initialized chunked upload. You need to invoke the initialize method OR set the MediaId property of an existing ChunkedUpload."); } if (parameters.SegmentIndex == null) { parameters.SegmentIndex = NextSegmentIndex; } if (parameters.MediaId == null) { parameters.MediaId = MediaId; } var appendQuery = _uploadQueryGenerator.GetChunkedUploadAppendQuery(parameters); var multiPartRequestParameters = new MultipartHttpRequestParameters { Query = appendQuery, Binaries = new List <byte[]> { parameters.Binary }, Timeout = parameters.Timeout, ContentId = parameters.MediaType, UploadProgressChanged = parameters.UploadProgressChanged }; var success = _twitterAccessor.TryExecuteMultipartQuery(multiPartRequestParameters); if (success) { UploadedSegments.Add(parameters.SegmentIndex.Value, parameters.Binary); ++NextSegmentIndex; } return(success); }
public bool Append(byte[] binary, int?segmentIndex = null) { if (MediaId == null) { throw new InvalidOperationException("You cannot append content to a non initialized chunked upload. You need to invoke the initialize method OR set the MediaId property of an existing ChunkedUpload."); } if (segmentIndex == null) { segmentIndex = NextSegmentIndex; } var appendQuery = _uploadQueryGenerator.GetChunkedUploadAppendQuery(MediaId.Value, segmentIndex.Value); var sucess = _twitterAccessor.TryExecuteMultipartQuery(appendQuery, new[] { binary }); if (sucess) { UploadedSegments.Add(segmentIndex.Value, binary); ++NextSegmentIndex; } return(sucess); }