สร้างรายการรับโอน ถ้าเป็นขรก.เดิมใช้รูปภาพจากทะเบียนประวัติ #1168
Some checks failed
release-dev / release-dev (push) Failing after 10s

This commit is contained in:
Bright 2025-07-03 16:16:32 +07:00
parent 18be7bee37
commit d6a3bdc8ba
3 changed files with 62 additions and 22 deletions

View file

@ -155,6 +155,40 @@ namespace BMA.EHR.Application.Repositories
}
}
public async Task<FormFile> GetImageToFormFileAsync(string refId)
{
try
{
using var memoryStream = new MemoryStream();
var request = new GetObjectRequest
{
BucketName = _bucketName,
Key = refId
};
using var response = await _s3Client.GetObjectAsync(request);
using var responseStream = response.ResponseStream;
await responseStream.CopyToAsync(memoryStream);
var finalBytes = memoryStream.ToArray();
var finalStream = new MemoryStream(finalBytes);
var fileName = Path.GetFileName(refId);
var contentType = response.Headers.ContentType ?? "image/jpeg";
return new FormFile(finalStream, 0, finalStream.Length, "file", fileName)
{
Headers = new HeaderDictionary(),
ContentType = contentType
};
}
catch
{
throw;
}
}
public async Task DeleteFileAsync(Guid fileId)
{
try

View file

@ -326,33 +326,22 @@ namespace BMA.EHR.Placement.Service.Controllers
p.posLevelOldId,
p.posLevelNameOld,
//Avatar = p.Avatar == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Avatar.Id,
//PlacementReceiveDocs = p.PlacementReceiveDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
Docs = p.Avatar ?? null,
Avatar = p.Avatar == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Avatar.Id,
PlacementReceiveDocs = p.PlacementReceiveDocs.Where(d => d.Document != null).Select(d => new { d.Document.Id, d.Document.FileName }),
})
.FirstOrDefaultAsync();
if (data == null)
return Error(GlobalMessages.DataNotFound, 404);
//var placementReceiveDocs = new List<dynamic>();
//foreach (var doc in data.PlacementReceiveDocs)
//{
// var _doc = new
// {
// doc.FileName,
// PathName = await _documentService.ImagesPath(doc.Id)
// };
// placementReceiveDocs.Add(_doc);
//}
var _Docs = new List<dynamic>();
if (data.Docs != null)
var placementReceiveDocs = new List<dynamic>();
foreach (var doc in data.PlacementReceiveDocs)
{
var _doc = new
{
FileName = data.Docs?.FileName,
PathName = await _documentService.ImagesPath(data.Docs?.Id)
doc.FileName,
PathName = await _documentService.ImagesPath(doc.Id)
};
_Docs.Add(_doc);
placementReceiveDocs.Add(_doc);
}
var _data = new
{
@ -438,9 +427,8 @@ namespace BMA.EHR.Placement.Service.Controllers
data.posLevelOldId,
data.posLevelNameOld,
//Avatar = data.Avatar == Guid.Parse("00000000-0000-0000-0000-000000000000") ? null : await _documentService.ImagesPath(data.Avatar),
//Docs = placementReceiveDocs,
Docs = _Docs,
Avatar = data.Avatar == Guid.Parse("00000000-0000-0000-0000-000000000000") ? null : await _documentService.ImagesPath(data.Avatar),
Docs = placementReceiveDocs,
};
return Success(_data);
@ -522,6 +510,7 @@ namespace BMA.EHR.Placement.Service.Controllers
return Error("ข้อมูลรหัสบัตรประจำตัวประชาชนไม่ถูกต้อง", 500);
}
var avatarUrl = string.Empty;
var apiUrl = $"{_configuration["API"]}/org/profile/citizenid/position/{req.citizenId}";
using (var client = new HttpClient())
{
@ -532,7 +521,7 @@ namespace BMA.EHR.Placement.Service.Controllers
var _result = await _res.Content.ReadAsStringAsync();
var org = JsonConvert.DeserializeObject<OrgRequest>(_result);
if (org != null && org.result != null)
{
placementReceive.profileId = org.result.profileId;
@ -579,6 +568,8 @@ namespace BMA.EHR.Placement.Service.Controllers
placementReceive.OrganizationPositionOld = org.result.position + "\n" +
(placementReceive.PositionExecutiveOld == null ? "" : (placementReceive.positionExecutiveField == null ? placementReceive.PositionExecutiveOld + "\n" : placementReceive.PositionExecutiveOld + "(" + placementReceive.positionExecutiveField + ")" + "\n"))
+ placementReceive.OrganizationOld;
avatarUrl = org.result.avatarUrl ?? null;
}
}
await _context.PlacementReceives.AddAsync(placementReceive);
@ -596,6 +587,20 @@ namespace BMA.EHR.Placement.Service.Controllers
placementReceive.Avatar = _doc;
}
}
else
{
if (avatarUrl != null && avatarUrl != "")
{
IFormFile imageFile = await _documentService.GetImageToFormFileAsync(avatarUrl);
var doc = await _documentService.UploadFileAsync(imageFile, imageFile.FileName);
var _doc = await _context.Documents.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == doc.Id);
if (_doc != null)
{
placementReceive.Avatar = _doc;
}
}
}
await _context.SaveChangesAsync();
return Success();

View file

@ -51,6 +51,7 @@ namespace BMA.EHR.Placement.Service.Requests
public double? salary { get; set; }
public string? education { get; set; }
public double? Amount { get; set; }
public string? avatarUrl { get; set; }
}
}