aboutsummaryrefslogtreecommitdiff
path: root/ExamTemplate/Services/CloudinaryService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ExamTemplate/Services/CloudinaryService.cs')
-rw-r--r--ExamTemplate/Services/CloudinaryService.cs50
1 files changed, 0 insertions, 50 deletions
diff --git a/ExamTemplate/Services/CloudinaryService.cs b/ExamTemplate/Services/CloudinaryService.cs
deleted file mode 100644
index ef421e7..0000000
--- a/ExamTemplate/Services/CloudinaryService.cs
+++ /dev/null
@@ -1,50 +0,0 @@
-using System.Collections.Generic;
-using System.IO;
-using System.Text.RegularExpressions;
-using System.Threading.Tasks;
-using CloudinaryDotNet;
-using CloudinaryDotNet.Actions;
-using Microsoft.AspNetCore.Http;
-using ExamTemplate.Services.Interfaces;
-
-namespace ExamTemplate.Services
-{
- public class CloudinaryService : ICloudinaryService
- {
- // Regex for getting the filename without (final) filename extension
- // So, from image.png, it will match image, and from doc.my.txt will match doc.my
- private static readonly Regex s_imageRegex = new(".*(?=\\.)");
-
- private readonly Cloudinary _cloudinary;
-
- public CloudinaryService(string cloudName, string apiKey, string apiSecret)
- {
- this._cloudinary = new Cloudinary(new Account(cloudName, apiKey, apiSecret));
- }
-
- public async Task<List<string>> UploadFilesToCloud(List<IFormFile> formFiles)
- {
- List<string> fileUrls = new();
- foreach (var formFile in formFiles)
- {
- string fileName = s_imageRegex.Match(formFile.FileName).ToString();
-
- using var ms = new MemoryStream();
- formFile.CopyTo(ms);
- byte[] formBytes = ms.ToArray();
-
- RawUploadParams rawUploadParams = new()
- {
- File = new FileDescription(fileName, new MemoryStream(formBytes)),
- PublicId = fileName,
- UseFilename = true
- };
-
- RawUploadResult rawUploadResult = await this._cloudinary.UploadAsync(rawUploadParams);
- fileUrls.Add(rawUploadResult.Url.AbsoluteUri);
- }
-
- return fileUrls;
- }
- }
-}