public Task <Response <BlobDTO> > AddBlobAsync([Path] string containerId,
                                                       [Header("Content-Disposition")] ContentDispositionHeaderValue contentDisposition,
                                                       [Header("Content-Type")] MediaTypeHeaderValue contentType,
                                                       [Body] Stream file)
        {
            Response <BlobDTO> response = null;

            if (_options.ThrowInternalServerError)
            {
                response = new Response <BlobDTO>("Very Bad Error",
                                                  new HttpResponseMessage(System.Net.HttpStatusCode.InternalServerError),
                                                  () => null);
            }
            else
            {
                var newId   = Guid.NewGuid().ToString("D");
                var newBlob = new BlobDTO()
                {
                    ContainerId         = containerId,
                    Id                  = newId,
                    MimeType            = contentType.MediaType,
                    OrigFileName        = contentDisposition.FileName,
                    SizeInBytes         = file.Length,
                    DownloadRelativeUrl = new Uri($"/blobs/{newId}/raw", UriKind.Relative)
                };
                _seedData.Blobs.Add(newBlob);

                response = new Response <BlobDTO>("Very Bad Error",
                                                  new HttpResponseMessage(HttpStatusCode.OK),
                                                  () => newBlob);
            }
            return(Task.FromResult(response));
        }
Ejemplo n.º 2
0
        public async Task <BlobDTO> UploadBlobToCustomerDirectoryAsync(Stream stream, string fileName, string customerId)
        {
            var blobInfo = await _blobRepository.UploadBlobToCustomerFolderAsync(stream, fileName, customerId);

            var blobDTO = new BlobDTO(blobInfo.Item1, blobInfo.Item2);

            return(blobDTO);
        }