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 BurnInfoeController : ControllerBase { private readonly AMESContext _context; public BurnInfoeController(AMESContext context) { _context = context; } // GET: api/BurnInfoe [HttpGet] public async Task<ActionResult<IEnumerable<BurnInfo>>> GetBurnInfos() { return await _context.BurnInfos.ToListAsync(); } // GET: api/BurnInfoe/5 [HttpGet("{id}")] public async Task<ActionResult<BurnInfo>> GetBurnInfo(int id) { var burnInfo = await _context.BurnInfos.FindAsync(id); return burnInfo; } /// <summary> /// ByBarcodeID 查詢 /// </summary> /// <param name="id">序號ID</param> /// <returns></returns> [HttpGet("BarcodeID/{id}")] public async Task<ActionResult<IEnumerable<BurnInfo>>> GetBurnInfosByBarcodeID(int id) { var result = await _context.BurnInfos.Where(w => w.BarcodeID == id).ToListAsync(); return result; } /// <summary> /// 更新燒機記錄資料表 /// </summary> /// <param name="burnInfo"></param> /// <returns></returns> [HttpPut] public async Task<ResultModel<BurnInfo>> PutBurnInfo(BurnInfo burnInfo) { ResultModel<BurnInfo> result = new ResultModel<BurnInfo>(); _context.Entry(burnInfo).State = EntityState.Modified; //設置容器空間某一個模型的某一個欄位 不提交到資料庫 _context.Entry<BurnInfo>(burnInfo).Property("CreateDate").IsModified = false; _context.Entry<BurnInfo>(burnInfo).Property("CreateUserID").IsModified = false; burnInfo.UpdateDate = DateTime.Now; burnInfo.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="burnInfo"></param> /// <returns></returns> [HttpPost] public async Task<ResultModel<BurnInfo>> PostBurnInfo(BurnInfo burnInfo) { ResultModel<BurnInfo> result = new ResultModel<BurnInfo>(); try { Helper helper = new Helper(_context); burnInfo.BurnID = helper.GetIDKey("BURN_ID").Result; _context.BurnInfos.Add(burnInfo); await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } catch (Exception ex) { result.Success = false; result.Msg = ex.Message; } return result; } // DELETE: api/BurnInfoe/5 [HttpDelete("{id}")] public async Task<ActionResult<BurnInfo>> DeleteBurnInfo(int id) { var burnInfo = await _context.BurnInfos.FindAsync(id); if (burnInfo == null) { return NotFound(); } _context.BurnInfos.Remove(burnInfo); await _context.SaveChangesAsync(); return burnInfo; } private bool BurnInfoExists(int id) { return _context.BurnInfos.Any(e => e.BurnID == id); } } }