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 MaterialFqcItemController : ControllerBase { private readonly AMESContext _context; public MaterialFqcItemController(AMESContext context) { _context = context; } // GET: api/MaterialFqcItem [HttpGet] public async Task<ActionResult<IEnumerable<MaterialFqcItem>>> GetMaterialFqcItems() { return await _context.MaterialFqcItems.ToListAsync(); } // GET: api/MaterialFqcItem/5 [HttpGet("{id}")] public async Task<ActionResult<MaterialFqcItem>> GetMaterialFqcItem(int id) { var materialFqcItem = await _context.MaterialFqcItems.FindAsync(id); if (materialFqcItem == null) { return NotFound(); } return materialFqcItem; } /// <summary> /// 料號查詢綁定檢驗工項 /// </summary> /// <param name="id">料號</param> /// <returns></returns> [HttpGet("ByitemNo/{id}")] public async Task<ActionResult<IEnumerable<MaterialFqcItem>>> GetMaterialFqcItemsByitemNo(string id) { var itemID = 0; var result = await _context.MaterialItems.Where(w => w.ItemNo == id).ToListAsync(); if (result.Count() != 0) itemID = result.FirstOrDefault().ItemID; return await _context.MaterialFqcItems.Where(w => w.ItemID == itemID).ToListAsync(); } /// <summary> /// 更新料號對應工項資料檔 /// </summary> /// <param name="materialFqcItem"></param> /// <returns></returns> [HttpPut] public async Task<ResultModel<MaterialFqcItem>> PutMaterialFqcItem(MaterialFqcItem materialFqcItem) { ResultModel<MaterialFqcItem> result = new ResultModel<MaterialFqcItem>(); _context.Entry(materialFqcItem).State = EntityState.Modified; materialFqcItem.UpdateDate = DateTime.Now; 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="materialFqcItem"></param> /// <returns></returns> [HttpPost] public async Task<ResultModel<MaterialFqcItem>> PostMaterialFqcItem(MaterialFqcItem materialFqcItem) { ResultModel<MaterialFqcItem> result = new ResultModel<MaterialFqcItem>(); Helper helper = new Helper(_context); materialFqcItem.MaterialFqcitemID = helper.GetIDKey("MATERIAL_FQCITEM_ID").Result; _context.MaterialFqcItems.Add(materialFqcItem); 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="id"></param> /// <returns></returns> [HttpDelete("{id}")] public async Task<ResultModel<string>> DeleteMaterialFqcItem(int id) { ResultModel<string> result = new ResultModel<string>(); var materialFqcItem = await _context.MaterialFqcItems.FindAsync(id); try { if (materialFqcItem == null) { result.Success = false; result.Msg = "找不到要刪除資料"; } else { _context.MaterialFqcItems.Remove(materialFqcItem); await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } } catch (Exception ex) { result.Success = false; result.Msg = ex.InnerException.Message; } return result; } private bool MaterialFqcItemExists(int id) { return _context.MaterialFqcItems.Any(e => e.MaterialFqcitemID == id); } } }