using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using AMESCoreStudio.WebApi; using AMESCoreStudio.WebApi.Models.AMES; using AMESCoreStudio.CommonTools.Result; namespace AMESCoreStudio.WebApi.Controllers.AMES { /// <summary> /// 檢驗结果維護資料檔 /// </summary> [Route("api/[controller]")] [ApiController] public class FqcResultController : ControllerBase { private readonly AMESContext _context; public FqcResultController(AMESContext context) { _context = context; } // GET: api/FqcResult [HttpGet] public async Task<ActionResult<IEnumerable<FqcResult>>> GetFqcResults() { return await _context.FqcResults.ToListAsync(); } // GET: api/FqcResult/5 [HttpGet("{id}")] public async Task<ActionResult<FqcResult>> GetFqcResult(string id) { var fqcResult = await _context.FqcResults.FindAsync(id); return fqcResult; } /// <summary> /// 查詢檢驗结果維護 by Table /// </summary> /// <param name="page">頁數</param> /// <param name="limit">筆數</param> /// <returns></returns> [HttpGet("FqcResultQuery")] public async Task<ResultModel<FqcResult>> GetFqcResultQuery(int page = 0, int limit = 10) { IQueryable<FqcResult> q = _context.FqcResults; ResultModel<FqcResult> result = new ResultModel<FqcResult>(); // 紀錄筆數 result.DataTotal = q.Count(); // Table 頁數 if (page > 0) { q = q.Skip((page - 1) * limit).Take(limit); } result.Data = await q.ToListAsync(); return result; } /// <summary> /// 更新檢驗结果維護 /// </summary> /// <param name="fqcResult"></param> /// <returns></returns> [HttpPut] public async Task<ResultModel<FqcResult>> PutFqcResult(FqcResult fqcResult) { ResultModel<FqcResult> result = new ResultModel<FqcResult>(); _context.Entry(fqcResult).State = EntityState.Modified; fqcResult.UpdateDate = DateTime.Now; fqcResult.UpdateUserID = 0; try { await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } catch (Exception ex) { result.Success = false; result.Msg = ex.InnerException.Message; } return result; } /// <summary> /// 新增檢驗结果維護 /// </summary> /// <param name="fqcResult"></param> /// <returns></returns> [HttpPost] public async Task<ResultModel<FqcResult>> PostFqcResult(FqcResult fqcResult) { ResultModel<FqcResult> result = new ResultModel<FqcResult>(); fqcResult.FqcNo = "FQ" + fqcResult.StatusNo; _context.FqcResults.Add(fqcResult); try { await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } catch { result.Success = false; result.Msg = "已重複建立相同狀態的檢驗結果,請重新確認"; } return result; } /// <summary> /// 刪除檢驗结果維護 /// </summary> /// <param name="id">FQC_NO</param> /// <returns></returns> [HttpDelete("{id}")] public async Task<ResultModel<string>> DeleteFqcResult(string id) { ResultModel<string> result = new ResultModel<string>(); var fqcResult = await _context.FqcResults.FindAsync(id); try { if (fqcResult == null) { result.Success = false; result.Msg = "找不到要刪除資料"; } else { _context.FqcResults.Remove(fqcResult); await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } } catch (Exception ex) { result.Success = false; result.Msg = ex.InnerException.Message; } return result; } private bool FqcResultExists(string id) { return _context.FqcResults.Any(e => e.FqcNo == id); } } }