Пример #1
0
        public async Task <Guid> UploadFileAsync(Stream stream, string extension, FileType fileType)
        {
            File fileEntity = fileType switch
            {
                FileType.Caff => new CaffFile(),
                FileType.Preview => new PreviewFile(),
                _ => throw new ArgumentOutOfRangeException(nameof(fileType), fileType, null)
            };

            fileEntity.Id        = Guid.NewGuid();
            fileEntity.Extension = extension;

            _context.Files.Add(fileEntity);

            var blobContainerClient = fileType switch
            {
                FileType.Caff => _caffBlobContainerClient,
                FileType.Preview => _previewBlobContainerClient,
                _ => throw new ArgumentOutOfRangeException(nameof(fileType), fileType, null)
            };

            var blobName   = fileEntity.Id + fileEntity.Extension;
            var blobClient = blobContainerClient.GetBlobClient(blobName);

            await blobClient.UploadAsync(stream);

            await _context.SaveChangesAsync();

            return(fileEntity.Id);
        }
Пример #2
0
 private string GetBlobName(File file)
 {
     return(file.Id + file.Extension);
 }