GetUserById - Possibly working(needs better photo handling)
Thu Jun 27 2024 18:03:42 GMT+0000 (Coordinated Universal Time)
Saved by
@iamkatmakhafola
[HttpGet]
[Route("getUserById/{id}")]
public async Task<IActionResult> GetUserById(int id)
{
try
{
var user = await _userManager.FindByIdAsync(id.ToString());
if (user == null)
{
return NotFound("User not found.");
}
var userViewModel = new UserViewModel
{
Name = user.Name,
Surname = user.Surname,
Email = user.Email,
Physical_Address = user.Physical_Address,
PhoneNumber = user.PhoneNumber,
Date_of_Birth = user.Date_of_Birth,
User_Status_ID = user.User_Status_ID,
User_Type_ID = user.User_Type_ID,
Id_Number = user.ID_Number
};
// Fetch the base64 string photo from user.Photo
string base64Photo = user.Photo;
// Convert base64 string to byte array
byte[] photoBytes = Convert.FromBase64String(base64Photo);
// Convert byte array to IFormFile-like object
var memoryStream = new MemoryStream(photoBytes);
userViewModel.Photo = new FormFile(memoryStream, 0, photoBytes.Length, "Photo", "photo.jpg")
{
Headers = new HeaderDictionary(),
ContentType = "image/jpeg" // Set the content type as appropriate
};
return Ok(userViewModel);
}
catch (Exception ex)
{
// Log the exception for debugging
Console.WriteLine(ex.Message);
return BadRequest("An error occurred while fetching user details.");
}
}
content_copyCOPY
Comments