| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 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;
- }
- }
- }
|