Beispiel #1
0
        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)*/ };
        }
Beispiel #2
0
        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);
        }