using Marco.Pms.DataAccess.Data; using Marco.Pms.Model.Dtos.Employees; using Marco.Pms.Model.Utilities; using Microsoft.AspNetCore.Mvc; namespace MarcoBMS.Services.Controllers { [Route("api/[controller]")] [ApiController] public class FileController : ControllerBase { private readonly ApplicationDbContext _context; private readonly IWebHostEnvironment _hostEnvironment; public FileController(ApplicationDbContext context, IWebHostEnvironment hostEnvironment) { _context = context; _hostEnvironment = hostEnvironment; } [HttpPost("fileupload")] public async Task FileUploadDemo([FromForm] DemoEmployeeModel model) { string imageName = await Saveimage(model.ImageFile); return Ok(); } [NonAction] public async Task Saveimage(IFormFile file) { string imageName = new string(Path.GetFileNameWithoutExtension(file.FileName).Take(10).ToArray()).Replace(" ", "-"); imageName = imageName + DateTime.Now.ToString("yyyymmssfff") + Path.GetExtension(file.FileName); var imagePath = Path.Combine(_hostEnvironment.ContentRootPath, "images", imageName); using (var fileStream = new FileStream(imagePath, FileMode.Create)) { await file.CopyToAsync(fileStream); } return imageName; } [HttpPost("manage1")] public async Task CreateUser_1([FromForm] CreateUserDto model) { if (model == null) return BadRequest("Invalid user data."); await GetFileDetails(model.Photo); return Ok(new { message = "User created successfully. Password reset link sent." }); } private static async Task GetFileDetails(IFormFile file) { FileDetails info = new FileDetails(); info.ContentType = file.ContentType; info.FileName = file.FileName; using (var memoryStream = new MemoryStream()) { await file.CopyToAsync(memoryStream); info.FileData = memoryStream.ToArray(); } return info; } } public class DemoEmployeeModel { public int EmployeeId { get; set; } public string? EmployeeName { get; set; } public string? Occupation { get; set; } public string? ImageName { get; set; } public string ImageSrc { get; set; } public IFormFile? ImageFile { get; set; } // List to handle multiple files } }