PSTW_CentralizeSystem/Areas/MMS/Controllers/MarineController.cs
2025-04-08 15:59:14 +08:00

63 lines
2.0 KiB
C#

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using PSTW_CentralSystem.Areas.MMS;
using QuestPDF.Fluent;
namespace PSTW_CentralSystem.Areas.MMS.Controllers
{
[Area("MMS")]
//testing from main laptop
//[Authorize(Policy = "RoleModulePolicy")]
public class MarineController : Controller
{
public IActionResult Index()
{
return View(); // This will look for Index.cshtml in Areas/MMS/Views/Marine
}
public IActionResult TarBallForm()
{
return View();
}
// Generates and returns a Tar Ball Sampling Report PDF
public IActionResult GenerateReport()
{
try
{
var document = new TarBallPDF();
var pdf = document.GeneratePdf();
var fileName = $"TarBallReport_{DateTime.Now:yyyyMMdd_HHmmss}.pdf";
return File(pdf, "application/pdf", fileName);
}
catch (Exception ex)
{
// Log the error (use a logger if configured)
Console.WriteLine(ex.Message);
return StatusCode(StatusCodes.Status500InternalServerError, "An error occurred while generating the PDF. "+ex.Message);
}
}
public IActionResult ViewPDF()
{
try
{
// Generate the PDF document
var document = new TarBallPDF();
var pdf = document.GeneratePdf();
// Return the PDF for inline viewing
return File(pdf, "application/pdf");
}
catch (Exception ex)
{
// Log the error (use a logger if configured)
Console.WriteLine(ex.Message);
return StatusCode(StatusCodes.Status500InternalServerError, "An error occurred while viewing the PDF. " + ex.Message);
}
}
}
}