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.AMES; using AMESCoreStudio.CommonTools.Result; using AMESCoreStudio.WebApi.DTO.AMES; // For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 namespace AMESCoreStudio.WebApi.Controllers.AMES { /// <summary> /// /// </summary> [Route("api/[controller]")] [ApiController] public class WipBoardController : ControllerBase { private readonly AMESContext _context; /// <summary> /// 工單資訊-板卡工程資訊 Controller /// </summary> /// <param name="context"></param> public WipBoardController(AMESContext context) { _context = context; } /// <summary> /// 工單資訊-板卡工程資訊 Controller to WipNo /// </summary> /// <param name="id">WipNo</param> /// <returns></returns> [HttpGet("{id}")] public async Task<ActionResult<WipBoard>> GetWipBoard(string id) { IQueryable<WipBoard> q = _context.WipBoards; var wipBoard = await q.Where(p => p.WipNo == id).FirstOrDefaultAsync(); return wipBoard; } /// <summary> /// 查詢燒機時間 /// </summary> /// <param name="id">WipNo</param> /// <returns>0:沒資料 -1:欄位格式有誤</returns> /// <remarks>0:沒資料 -1:欄位格式有誤</remarks> [HttpGet("BITime/{id}")] public async Task<ActionResult<double>> GetWipBoardToBITime(string id) { double Time = 0; IQueryable<WipBoard> q = _context.WipBoards; var wipBoard = await q.Where(p => p.WipNo == id).FirstOrDefaultAsync(); if (wipBoard != null) { try { if (!string.IsNullOrWhiteSpace(wipBoard.BiTime)) Time = double.Parse(wipBoard.BiTime); } catch { Time = -1; } } return Time; } /// <summary> /// 新增工單資訊-板卡工程資訊 /// </summary> /// <param name="wipBoard"></param> /// <returns></returns> [HttpPost] public async Task<ResultModel<WipBoard>> PostWipBoard([FromBody] WipBoard wipBoard) { ResultModel<WipBoard> result = new ResultModel<WipBoard>(); try { _context.WipBoards.Add(wipBoard); await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } catch (DbUpdateConcurrencyException ex) { result.Success = false; result.Msg = ex.InnerException.Message; } return result; } /// <summary> /// 修改工單資訊-板卡工程資訊 /// </summary> /// <returns></returns> [HttpPut] public async Task<ResultModel<WipBoard>> PutWipBoard([FromBody] WipBoard wipBoard) { ResultModel<WipBoard> result = new ResultModel<WipBoard>(); var wipNo = wipBoard.WipNo; try { if (_context.WipBoards.Any(e => e.WipNo == wipNo)) { _context.Entry(wipBoard).State = EntityState.Modified; _context.Entry<WipBoard>(wipBoard).Property("CreateDate").IsModified = false; _context.Entry<WipBoard>(wipBoard).Property("CreateUserID").IsModified = false; wipBoard.UpdateDate = DateTime.Now; } else { _context.WipBoards.Add(wipBoard); } await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } catch (Exception ex) { result.Success = false; result.Msg = ex.InnerException.Message; } return result; } // DELETE api/<WipSystemController>/5 [HttpDelete("{id}")] public void Delete(int id) { } } }