| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- using Microsoft.AspNetCore.Http;
- using Microsoft.Extensions.Configuration;
- using Microsoft.WindowsAzure.Storage;
- using Microsoft.WindowsAzure.Storage.Blob;
-
- namespace Diligent.WebAPI.Business.Services
- {
- public class FileService : IFileService
- {
- private readonly IConfiguration _configuration;
- private readonly DatabaseContext _context;
- public FileService(IConfiguration configuration, DatabaseContext context)
- {
- _configuration = configuration;
- _context = context;
- }
- public async Task<string> GetCV(string fileName)
- {
- await using MemoryStream memoryStream = new();
- var cloudBlockBlob = GetCloudBlockBlob(fileName);
- await cloudBlockBlob.DownloadToStreamAsync(memoryStream);
- Stream blobStream = cloudBlockBlob.OpenReadAsync().Result;
- return ConvertToBase64(blobStream);
- }
- public async Task UploadCV(string fileName,IFormFile file)
- {
-
- var cloudBlockBlob = GetCloudBlockBlob(fileName);
- await using var data = file.OpenReadStream();
- await cloudBlockBlob.UploadFromStreamAsync(data);
- }
-
- private CloudBlockBlob GetCloudBlockBlob(string fileName)
- {
- string blobstorageconnection = _configuration.GetValue<string>("BlobConnectionString");
- CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(blobstorageconnection);
- CloudBlobClient blobClient = cloudStorageAccount.CreateCloudBlobClient();
- CloudBlobContainer container = blobClient.GetContainerReference(
- _configuration.GetValue<string>("BlobContainerName"));
- return container.GetBlockBlobReference(fileName);
- }
- private static string ConvertToBase64(Stream stream)
- {
- byte[] bytes;
- using (var memoryStream = new MemoryStream())
- {
- stream.CopyTo(memoryStream);
- bytes = memoryStream.ToArray();
- }
-
- string base64 = Convert.ToBase64String(bytes);
- return base64;
- }
-
- public async Task<IEnumerable<FileEntity>> GetAll()
- {
- return await _context.Files.ToListAsync();
- }
- }
- }
|