2023-01-19 13:05:54 -07:00

68 lines
2.0 KiB
C#

using Microsoft.AspNetCore.Mvc;
using ReportingServices.Shared.HelperClasses;
using ReportingServices.Shared.Models.ProductionReport;
using ReportingServices.Shared.ViewModels.ProductionReport;
using ReportingServices.UI.Models;
namespace ReportingServices.UI.Controllers;
public class ProductionReportController : Controller
{
private readonly ILogger<ProductionReportController> _logger;
private readonly Dictionary<string, string> _filePaths;
private readonly string _baseDBUrl;
public ProductionReportController(ILogger<ProductionReportController> logger, AppSettings appSettings)
{
_logger = logger;
_baseDBUrl = appSettings.BaseAPIAddress;
_filePaths = new()
{
{ "DailyReport", appSettings.DailyReportFilePath },
{ "ToolStateOwners", appSettings.ToolStateOwnerFilePath },
{ "SLL", appSettings.SLLFilePath },
};
_logger.LogInformation("Base Database Address: {baseUrl}", _baseDBUrl);
}
public IActionResult Index() => View();
public IActionResult DailyReport()
{
try
{
DailyReport dailyReport = DailyReportHelper.SetUpDailyReport(_logger, _filePaths, _baseDBUrl);
return View(dailyReport);
}
catch (Exception ex)
{
_logger.LogCritical(ex, "Failed to load report");
return View();
}
}
public IActionResult EditDailyReport()
{
ManualReportEntries entries = JsonFileHandler.LoadJSONFile<ManualReportEntries>(_filePaths["DailyReport"]);
return View(entries);
}
[HttpPost]
public IActionResult EditDailyReport(ManualReportEntries rpt)
{
JsonFileHandler.SaveJSONFile(rpt, _filePaths["DailyReport"]);
return RedirectToAction("DailyReport");
}
public IActionResult HoldLotReport()
{
List<HoldLot> holdLots = ApiCaller.GetApi<List<HoldLot>>(_baseDBUrl + "GetCurrentHoldLots").Result;
return View(holdLots);
}
}