using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using AMESCoreStudio.WebApi.Models.BAS; using AMESCoreStudio.CommonTools.Result; namespace AMESCoreStudio.WebApi.Controllers.BAS { /// <summary> /// 料號燒机時間資料檔 /// </summary> [Route("api/[controller]")] [ApiController] public class RuninTimesController : ControllerBase { private readonly AMESContext _context; /// <summary> /// 建構式 /// </summary> /// <param name="context"></param> public RuninTimesController(AMESContext context) { _context = context; } /// <summary> /// 查詢燒机時間資料檔 /// </summary> /// <returns></returns> // GET: api/<RuninTimesController> [HttpGet] public async Task<ActionResult<IEnumerable<RuninTime>>> GetRuninTimes() { IQueryable<RuninTime> q = _context.RuninTimes; q = q.OrderBy(p => p.ItemNo); var RuninTimes = await q.ToListAsync(); return RuninTimes; } /// <summary> /// 燒机時間資料檔 /// </summary> /// <param name="id">ItemID</param> /// <returns></returns> [HttpGet("{id}")] public async Task<IEnumerable<RuninTime>> GetRuninTimes(int id) { IQueryable<RuninTime> q = _context.RuninTimes; var result = await q.Where(p => p.RuninID == id).ToListAsync(); return result; } /// <summary> /// 燒机時間資料檔 /// </summary> /// <param name="id">ItemID</param> /// <returns></returns> [HttpGet("ItemNo/{id}")] public async Task<IEnumerable<RuninTime>> GetRuninTimesByItemNo(string id) { IQueryable<RuninTime> q = _context.RuninTimes; q = q.Where(p => p.ItemNo==id); q = q.OrderBy(p => p.RuninID); var result = await q.ToListAsync(); return result; } /// <summary> /// 新增燒机時間資料檔 /// </summary> /// <param name="RuninTime"></param> /// <returns></returns> [HttpPost] public async Task<ResultModel<RuninTime>> PostRuninTimes([FromBody] RuninTime RuninTime) { ResultModel<RuninTime> result = new ResultModel<RuninTime>(); if (RuninTimeExists(RuninTime.ItemNo)) { result.Success = false; result.Msg = "工程編號重覆!!"; return result; } Helper helper = new Helper(_context); RuninTime.RuninID = helper.GetIDKey("RUNIN_ID").Result; _context.RuninTimes.Add(RuninTime); 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> /// <returns></returns> [HttpPut("{id}")] public async Task<ResultModel<RuninTime>> PutBarcodeItems(int id, [FromBody] RuninTime runinTime) { ResultModel<RuninTime> result = new ResultModel<RuninTime>(); if (id != runinTime.RuninID) { result.Success = false; result.Msg = "序號錯誤"; return result; } _context.Entry(runinTime).State = EntityState.Modified; try { await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; return result; } catch (DbUpdateConcurrencyException ex) { result.Success = false; result.Msg = ex.InnerException.Message; return result; //throw; } } /// <summary> /// 刪除燒机時間 /// </summary> /// <param name="id"></param> /// <returns></returns> // DELETE: api/StandardWorkTimes/5 [HttpDelete("{id}")] public async Task<ResultModel<RuninTime>> DeleteRuninTime(int id) { ResultModel<RuninTime> result = new ResultModel<RuninTime>(); var RuninTime = await _context.RuninTimes.Where(m => m.RuninID == id).FirstOrDefaultAsync(); if (RuninTime == null) { result.Success = false; result.Msg = "序號不存在"; return result; } _context.RuninTimes.Remove(RuninTime); await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; return result; } private bool RuninTimeExists(string id) { return _context.RuninTimes.Any(e => e.ItemNo == id); } private bool RuninTimeExists(int id) { return _context.RuninTimes.Any(e => e.RuninID == id); } } }