using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; using OI.Metrology.Archive.Models; using OI.Metrology.Shared.Models.Stateless; using OI.Metrology.Shared.Repositories; using OI.Metrology.Shared.ViewModels; using System; using System.Collections.Generic; using IO = System.IO; namespace OI.Metrology.Archive.Controllers; public class PagesController : Controller { private readonly bool _IsTestDatabase; private readonly IRdsMaxRepo _RdsMaxRepo; private readonly IMetrologyRepository _MetrologyRepo; public PagesController(AppSettings appSettings, IMetrologyRepository metrologyRepository, IRdsMaxRepo rdsMaxRepo) { _RdsMaxRepo = rdsMaxRepo; _MetrologyRepo = metrologyRepository; _IsTestDatabase = appSettings.ConnectionString.Contains("test", StringComparison.InvariantCultureIgnoreCase); } public override void OnActionExecuted(ActionExecutedContext context) { base.OnActionExecuted(context); ViewBag.IsTestDatabase = _IsTestDatabase; } [HttpGet] [Route("/")] public IActionResult Index() => View("RunHeaders"); [HttpGet] [Route("/AwaitingDispo")] [Route("/Metrology/AwaitingDispo")] public IActionResult AwaitingDispo() => View(); [HttpGet] [Route("/RunInfo")] [Route("/Metrology/RunInfo")] public IActionResult RunInfo([FromQuery] int tooltypeid = 1, [FromQuery] int headerid = 0) { RunInfo m = new() { ToolTypeID = tooltypeid, HeaderID = headerid, HeaderAttachmentID = Guid.Empty, }; if (headerid > 0) { m.HeaderAttachmentID = _MetrologyRepo.GetHeaderAttachmentID(tooltypeid, headerid); } return View(m); } [HttpGet] [Route("/RunHeaders")] [Route("/Metrology/RunHeaders")] public IActionResult RunHeaders() => View(); [HttpGet] [Route("/Crash")] public IActionResult Crash() => throw new Exception("Test unhandled exception"); [HttpGet] [Route("/Step1")] [Route("/Metrology/Step1")] public IActionResult Step1(string mod = "", string equipment = "", string layer = "", string zone = "", string rds = "", string initials = "") { string directory = "D:/Tmp/Metrology"; if (!IO.Directory.Exists(directory)) _ = IO.Directory.CreateDirectory(directory); string[] model = new string[] { mod, equipment, layer, zone, rds, initials }; if (!string.IsNullOrEmpty(initials)) IO.File.WriteAllLines(IO.Path.Combine(directory, $"{DateTime.Now.Ticks}-{initials}.rsv"), model); return View(model); } [HttpGet] [Route("/Step2")] [Route("/Metrology/Step2")] public IActionResult Step2(string mod) => View(new string[] { mod }); [HttpGet] [Route("/Step3")] [Route("/Metrology/Step3")] public IActionResult Step3(string mod, string equipment) => View(new string[] { mod, equipment }); [HttpGet] [Route("/Step4")] [Route("/Metrology/Step4")] public IActionResult Step4(string mod, string equipment, string layer) => View(new string[] { mod, equipment, layer }); [HttpGet] [Route("/Step5")] [Route("/Metrology/Step5")] public IActionResult Step5(string mod, string equipment, string layer, string zone) => View(new string[] { mod, equipment, layer, zone }); [HttpGet] [Route("/Step6")] [Route("/Metrology/Step6")] public IActionResult Step6(string mod, string equipment, string layer, string zone, string rds) => View(new string[] { mod, equipment, layer, zone, rds }); [HttpGet] [Route("/RdsMax")] [Route("/Metrology/RdsMax")] public IActionResult RdsMax() { Shared.DataModels.RDS.Max[] collection = _RdsMaxRepo.GetMaxRDS(); List results = _RdsMaxRepo.Convert(collection); return View(results); } [HttpGet] [Route("/Reactor")] [Route("/Metrology/Reactor")] public IActionResult Reactor() => View(new RunInfo()); }