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; namespace AMESCoreStudio.WebApi.Controllers.AMES { /// <summary> /// 出貨序號編碼規則基本資料檔Controller /// </summary> [Route("api/[controller]")] [ApiController] public class SerialRuleDetailsController : ControllerBase { private readonly AMESContext _context; /// <summary> /// 建構式 /// </summary> /// <param name="context"></param> public SerialRuleDetailsController(AMESContext context) { _context = context; } /// <summary> /// /// </summary> /// <param name="page"></param> /// <param name="limit"></param> /// <returns></returns> [HttpGet] public async Task<ActionResult<IEnumerable<SerialRuleDetail>>> GetSerialRuleDetail(int page = 0, int limit = 10) { IQueryable<SerialRuleDetail> q = _context.SerialRuleDetails; if (page > 0) { q = q.OrderBy(p => p.SerialRuleDetailID).Skip((page - 1) * limit).Take(limit); } else { q = q.OrderBy(p => p.SerialRuleDetailID); } //q = q.OrderBy(p => p.SerialRuleDetailID); var SerialRuleDetail = await q.ToListAsync(); return SerialRuleDetail; } /// <summary> /// 出貨序號編碼規則基本資料檔 to SerialRuleDetailID /// </summary> /// <param name="id">SerialRuleDetailID</param> /// <returns></returns> [HttpGet("{id}")] public async Task<ActionResult<IEnumerable<SerialRuleDetail>>> GetSerialRuleDetail(int id) { IQueryable<SerialRuleDetail> q = _context.SerialRuleDetails; var SerialRuleDetail = await q.Where(p => p.SerialRuleDetailID == id).ToListAsync(); return SerialRuleDetail; } /// <summary> /// 新增料號基本資料檔 /// </summary> /// <param name="SerialRuleDetail"></param> /// <returns></returns> [HttpPost] public async Task<ResultModel<SerialRuleDetail>> PostSerialRuleDetail([FromBody] SerialRuleDetail SerialRuleDetail) { ResultModel<SerialRuleDetail> result = new ResultModel<SerialRuleDetail>(); Helper helper = new Helper(_context); SerialRuleDetail.SerialRuleDetailID = helper.GetIDKey("SerialRuleDetail_ID").Result; _context.SerialRuleDetails.Add(SerialRuleDetail); 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<SerialRuleDetail>> PutSerialRuleDetail(int id, [FromBody] SerialRuleDetail SerialRuleDetail) { ResultModel<SerialRuleDetail> result = new ResultModel<SerialRuleDetail>(); //_context.Attach(SerialRuleDetail); // 指定更新某個欄位 //_context.Entry(SerialRuleDetail).Property(p => p.SerialRuleDetailID).IsModified = true; _context.Entry(SerialRuleDetail).State = EntityState.Modified; try { await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } catch (Exception ex) { result.Success = false; result.Msg = ex.InnerException.Message; } return result; } } }