using Microsoft.AspNetCore.Mvc; namespace OI.Metrology.Server.ApiControllers; using OI.Metrology.Shared.DataModels; using OI.Metrology.Shared.Models.Stateless; using System.Text.Json; [Route("api/v4/InfinityQS")] public class InfinityQSV4Controller : Controller, IInfinityQSV4Controller { private readonly IInfinityQSV4Repository _InfinityQSRepositoryV4; public InfinityQSV4Controller(IInfinityQSV4Repository InfinityQSRepositoryV4) => _InfinityQSRepositoryV4 = InfinityQSRepositoryV4; [HttpGet("{sub_group_id}/commandText")] public IActionResult GetCommandText(string sub_group_id, string process, string job, string part, string lot, string date_time) { string commandText = _InfinityQSRepositoryV4.GetCommandText(sub_group_id, process, job, part, lot, date_time); return Content(commandText, "text/plain; charset=utf-8"); } [HttpGet("{sub_group_id}/data")] public IActionResult GetData(string sub_group_id) { Result result = _InfinityQSRepositoryV4.GetData(sub_group_id); string json = JsonSerializer.Serialize(result, ResultInfinityQSV4SourceGenerationContext.Default.ResultInfinityQSV4Array); return Content(json, "application/json", System.Text.Encoding.UTF8); } [HttpGet("{sub_group_id}/descriptors")] public IActionResult GetDescriptors(string sub_group_id) { Result result = _InfinityQSRepositoryV4.GetDescriptors(sub_group_id); string json = JsonSerializer.Serialize(result, ResultInfinityQSDescriptorV4SourceGenerationContext.Default.ResultInfinityQSDescriptorV4Array); return Content(json, "application/json", System.Text.Encoding.UTF8); } [HttpGet("{sub_group_id}/header")] public IActionResult GetHeader(string sub_group_id) { Result result = _InfinityQSRepositoryV4.GetHeader(sub_group_id); string json = JsonSerializer.Serialize(result, ResultInfinityQSV4SourceGenerationContext.Default.ResultInfinityQSV4Array); return Content(json, "application/json", System.Text.Encoding.UTF8); } [HttpGet("{process}/product-data-average-sum-of-defects-process-mean-process-sigma")] public IActionResult GetProductDataAverageSumOfDefectsProcessMeanProcessSigma(string process, string? recipe) { string result = _InfinityQSRepositoryV4.GetProductDataAverageSumOfDefectsProcessMeanProcessSigma(process, recipe); return Content(result, "application/json", System.Text.Encoding.UTF8); } [HttpGet("epi-pro-temp-verification")] public IActionResult GetEpiProTempVerification(int[] night) { string result = _InfinityQSRepositoryV4.GetEpiProTempVerification(night); return Content(result, "text/html", System.Text.Encoding.UTF8); } [HttpGet("epi-pro-temp-verification-rows")] public IActionResult GetEpiProTempVerificationRows(int[] night) { List results = _InfinityQSRepositoryV4.GetEpiProTempVerificationRows(night); string json = JsonSerializer.Serialize(results); return Content(json, "application/json", System.Text.Encoding.UTF8); } [HttpGet("reactors")] public IActionResult GetReactors() => Json(_InfinityQSRepositoryV4.GetReactors()); [HttpGet("{rds}/run-data-sheet")] public IActionResult GetRunDataSheet(string rds) => Content(_InfinityQSRepositoryV4.GetRunDataSheet(rds)); [HttpGet("{part}/production-specification")] public IActionResult GetProductionSpecification(string part) => Content(_InfinityQSRepositoryV4.GetProductionSpecification(part)); [HttpGet("{process}/last-group-id-with-value")] public IActionResult GetLastGroupIdWithValue(string process, string? part, int? test) => Content(_InfinityQSRepositoryV4.GetLastGroupIdWithValue(process, part, test)); }