public FileUploadStatus UploadBlock(int id, byte[] chunk, FileUploadModel modelObj) { AzureFileUploadModel model = modelObj as AzureFileUploadModel; bool errorInOperation = false; if (model != null && chunk.Length != 0) { using (var chunkStream = new MemoryStream(chunk)) { var blockId = Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format(CultureInfo.InvariantCulture, "{0:D4}", id))); try { model.BlockBlob.PutBlock(blockId, chunkStream, null); } catch (StorageException e) { //... return(new FileUploadStatus() { Error = true, IsLastBlock = false, Message = model.UploadStatusMessage }); } } } if (id == model.BlockCount) { //... try { var blockList = Enumerable.Range(0, (int)model.BlockCount).ToList <int>().ConvertAll(rangeElement => Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format(CultureInfo.InvariantCulture, "{0:D4}", rangeElement)))); model.BlockBlob.PutBlockList(blockList); //... return(new FileUploadStatus() { IsLastBlock = true }); } catch (StorageException e) { errorInOperation = true; //... } finally { //Session.Clear(); } return(new FileUploadStatus() { Error = errorInOperation, IsLastBlock = model.IsUploadCompleted, Message = model.UploadStatusMessage }); } return(new FileUploadStatus() { Error = false, IsLastBlock = false }); //new { error = true, isLastBlock = false, message = "Error" /*string.Format(Resources.FailedToUploadFileMessage, Resources.SessonExpired)*/ }; }
public FileUploadModel PrepareMetaData(int blocksCount, int blockSize, string fileName, long fileSize) { CloudBlobContainer container = GetContainer(true); var fileToUpload = new AzureFileUploadModel() { BlockCount = blocksCount, FileName = fileName, FileSize = fileSize, BlockBlob = container.GetBlockBlobReference(fileName), StartTime = DateTime.Now, IsUploadCompleted = false, UploadStatusMessage = string.Empty }; return(fileToUpload); }