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> /// 工單各站數量資料檔 – By TIME /// </summary> [Route("api/[controller]")] [ApiController] public class WipTimeController : ControllerBase { private readonly AMESContext _context; public WipTimeController(AMESContext context) { _context = context; } // GET: api/WipTime [HttpGet] public async Task<ActionResult<IEnumerable<WipTime>>> GetWipTimes() { return await _context.WipTimes.ToListAsync(); } // GET: api/WipTime/5 [HttpGet("{id}")] public async Task<ActionResult<WipTime>> GetWipTime(int id) { var wipTime = await _context.WipTimes.FindAsync(id); if (wipTime == null) { return NotFound(); } return wipTime; } [HttpGet("Query")] public async Task<ActionResult<IEnumerable<WipTime>>> GetWipTimeByData(int wipID, int stationID, string ruleStatus) { IQueryable<WipTime> q = _context.WipTimes; if (wipID != 0) q = q.Where(w => w.WipID == wipID); if (stationID != 0) q = q.Where(w => w.StationID == stationID); if (!string.IsNullOrWhiteSpace(ruleStatus)) q = q.Where(w => w.RuleStatus == ruleStatus); var result = await q.ToListAsync(); return result; } /// <summary> /// 更新工單各站數量資料檔 – By TIME /// </summary> /// <param name="wipTime"></param> /// <returns></returns> [HttpPut] public async Task<ResultModel<WipTime>> PutWipTime(WipTime wipTime) { ResultModel<WipTime> result = new ResultModel<WipTime>(); _context.Entry(wipTime).State = EntityState.Modified; wipTime.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> /// 新增工單各站數量資料檔 – By TIME /// </summary> /// <param name="wipTime"></param> /// <returns></returns> [HttpPost] public async Task<ResultModel<WipTime>> PostWipTime(WipTime wipTime) { ResultModel<WipTime> result = new ResultModel<WipTime>(); _context.WipTimes.Add(wipTime); try { await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } catch (Exception ex) { result.Success = false; result.Msg = ex.InnerException.Message; } return result; } // DELETE: api/WipTime/5 [HttpDelete("{id}")] public async Task<ActionResult<WipTime>> DeleteWipTime(int id) { var wipTime = await _context.WipTimes.FindAsync(id); if (wipTime == null) { return NotFound(); } _context.WipTimes.Remove(wipTime); await _context.SaveChangesAsync(); return wipTime; } private bool WipTimeExists(int id) { return _context.WipTimes.Any(e => e.WipID == id); } } }