Check in and Check Out

This commit is contained in:
Suphonchai Phoonsawat 2023-11-13 15:26:14 +07:00
parent 065314fd6c
commit 8bf646230a
7 changed files with 769 additions and 50 deletions

View file

@ -12,6 +12,8 @@ using Amazon;
using BMA.EHR.Domain.Models.Organizations;
using MimeTypes;
using Profile = BMA.EHR.Domain.Models.HR.Profile;
using System.IO;
using Amazon.S3.Transfer;
namespace BMA.EHR.Application.Repositories
{
@ -238,6 +240,42 @@ namespace BMA.EHR.Application.Repositories
#endregion
private async Task<bool> IsExistBucketAsync(string bucketName)
{
try
{
var response = await _s3Client.ListObjectsV2Async(new ListObjectsV2Request
{
BucketName = bucketName
});
return true;
}
catch
{
return false;
}
}
private async Task<bool> CreateBucketAsync(string bucketName)
{
try
{
var request = new PutBucketRequest
{
BucketName = bucketName,
UseClientRegion = true,
};
var response = await _s3Client.PutBucketAsync(request);
return response.HttpStatusCode == System.Net.HttpStatusCode.OK;
}
catch
{
return false;
}
}
public List<Guid> GetAllIdByRoot(Guid? id)
{
try
@ -315,6 +353,33 @@ namespace BMA.EHR.Application.Repositories
}
}
public async Task UploadFileAsync(string fileName, MemoryStream fileStream)
{
try
{
//var fileTransferUtility = new TransferUtility(_s3Client);
var fileExt = Path.GetExtension(fileName);
var fileType = MimeTypeMap.GetMimeType(fileExt);
var file_name = Path.GetFileName(fileName);
var request = new PutObjectRequest
{
BucketName = _bucketName,
Key = file_name,
InputStream = fileStream,
ContentType = fileType,
CannedACL = S3CannedACL.BucketOwnerFullControl
};
await _s3Client.PutObjectAsync(request);
}
catch
{
throw;
}
}
public async Task UploadFileAsync(string fileName, string subFolder)
{
try
@ -325,11 +390,6 @@ namespace BMA.EHR.Application.Repositories
var fileExt = Path.GetExtension(fileName);
var fileType = MimeTypeMap.GetMimeType(fileExt);
var file_name = Path.GetFileName(fileName);
Console.WriteLine($"{_bucketName}{subFolder}");
Console.WriteLine(fileName);
Console.WriteLine(file_name);
Console.WriteLine(filestream);
Console.WriteLine(fileType);
var request = new PutObjectRequest
{