using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using AMESCoreStudio.WebApi.Models.AMES; using Microsoft.EntityFrameworkCore; using AMESCoreStudio.CommonTools.Result; // 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 BarcodeChangeController : ControllerBase { private readonly AMESContext _context; /// <summary> /// /// </summary> /// <param name="context"></param> public BarcodeChangeController(AMESContext context) { _context = context; } /// <summary> /// 條碼變更資料表 /// </summary> /// <returns></returns> [HttpGet] public async Task<ActionResult<IEnumerable<BarcodeChange>>> GetBarcodeChange() { IQueryable<BarcodeChange> q = _context.BarcodeChanges; return await q.ToListAsync(); } /// <summary> /// 條碼變更資料表 by id /// </summary> /// <param name="id">BarcodeID</param> /// <returns></returns> [HttpGet("{id}")] public async Task<ActionResult<IEnumerable<BarcodeChange>>> GetBarcodeChange(int id) { IQueryable<BarcodeChange> q = _context.BarcodeChanges.FromSqlInterpolated ($"SELECT * FROM BARCODE_CHANGE").Where(w => w.BarcodeID == id); return await q.ToListAsync(); } /// <summary> /// 條碼變更資料表 by BarcodeNo 查詢新舊條碼 /// </summary> /// <param name="id">BarcodeID</param> /// <returns></returns> [HttpGet("ByBarcodeNo/{id}")] public async Task<ActionResult<IEnumerable<BarcodeChange>>> GetBarcodeChangeByBarcodeNo(string id) { IQueryable<BarcodeChange> q = _context.BarcodeChanges.Where(w => w.BarcodeNoOld == id || w.BarcodeNoNew == id); return await q.ToListAsync(); } /// <summary> /// 條碼變更資料表 by id /// </summary> /// <param name="id">BarcodeID</param> /// <returns></returns> [HttpGet("ByBarcodeID/{id}")] public async Task<ActionResult<IEnumerable<BarcodeChange>>> GetBarcodeChangeByBarcodeID(int id) { var q = from q1 in _context.BarcodeChanges where q1.BarcodeID == id join q2 in _context.UserInfoes on q1.CreateUserID equals q2.UserID select new BarcodeChange { BarcodeChangeID = q1.BarcodeChangeID, BarcodeID = q1.BarcodeID, BarcodeNoOld = q1.BarcodeNoOld, BarcodeNoNew = q1.BarcodeNoNew, ChangeType = q1.ChangeType, CreateUserID = q1.CreateUserID, CreateDate = q1.CreateDate, Memo = q1.Memo, CreateUserName = q2.UserName }; return await q.ToListAsync(); } /// <summary> /// 新增條碼變更資料表 /// </summary> /// <param name="barcodeChange"></param> /// <returns></returns> [HttpPost] public async Task<ResultModel<BarcodeChange>> PostBarcodeChange([FromBody] BarcodeChange barcodeChange) { ResultModel<BarcodeChange> result = new ResultModel<BarcodeChange>(); Helper helper = new Helper(_context); barcodeChange.BarcodeChangeID = helper.GetIDKey("BARCODE_CHANGE_ID").Result; _context.BarcodeChanges.Add(barcodeChange); try { await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } catch (DbUpdateException ex) { result.Success = false; result.Msg = ex.InnerException.Message; } return result; } [HttpDelete("{id}")] public void Delete(int id) { } } }