diff options
| author | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-02-05 20:50:45 +0200 |
|---|---|---|
| committer | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-02-05 20:50:45 +0200 |
| commit | 2269b5aa6c8d3dcb407c34fa256200bdc573585a (patch) | |
| tree | ca0ea403ba5500df20bc8854ec50529a25c64245 /src/DevHive.Services/Services | |
| parent | d9a633640b9d728db2c6d77c0b7fb081a4c74177 (diff) | |
| download | DevHive-2269b5aa6c8d3dcb407c34fa256200bdc573585a.tar DevHive-2269b5aa6c8d3dcb407c34fa256200bdc573585a.tar.gz DevHive-2269b5aa6c8d3dcb407c34fa256200bdc573585a.zip | |
Moved CloudinaryService to it's proper location
Diffstat (limited to 'src/DevHive.Services/Services')
| -rw-r--r-- | src/DevHive.Services/Services/CloudinaryService.cs | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/DevHive.Services/Services/CloudinaryService.cs b/src/DevHive.Services/Services/CloudinaryService.cs new file mode 100644 index 0000000..57955a2 --- /dev/null +++ b/src/DevHive.Services/Services/CloudinaryService.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Threading.Tasks; +using CloudinaryDotNet; +using CloudinaryDotNet.Actions; +using DevHive.Services.Interfaces; +using Microsoft.AspNetCore.Http; + +namespace DevHive.Services.Services +{ + public class CloudinaryService : ICloudService + { + 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 formFileId = Guid.NewGuid().ToString(); + + using (var ms = new MemoryStream()) + { + formFile.CopyTo(ms); + byte[] formBytes = ms.ToArray(); + + RawUploadParams rawUploadParams = new() + { + File = new FileDescription(formFileId, new MemoryStream(formBytes)), + PublicId = formFileId, + UseFilename = true + }; + + RawUploadResult rawUploadResult = await this._cloudinary.UploadAsync(rawUploadParams); + fileUrls.Add(rawUploadResult.Url.AbsoluteUri); + } + } + + return fileUrls; + } + + public async Task<bool> RemoveFilesFromCloud(List<string> fileUrls) + { + return true; + } + } +} |
