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 { [Route("api/[controller]")] [ApiController] public class BarcodeGroupsController : ControllerBase { private readonly AMESContext _context; public BarcodeGroupsController(AMESContext context) { _context = context; } // GET: api/BarcodeGroups [HttpGet] public async Task<ActionResult<IEnumerable<BarcodeGroup>>> GetBarcodeGroups() { return await _context.BarcodeGroups.ToListAsync(); } /// <summary> /// 用BarCodeID取條碼關聯資料檔 /// </summary> /// <param name="id">BarCodeID</param> /// <returns></returns> // GET: api/BarcodeGroups/5 [HttpGet("BarCodeID/{id}")] public async Task<ActionResult<IEnumerable<BarcodeGroup>>> GetBarcodeGroupByBarCodeID(int id) { IQueryable<BarcodeGroup> q = _context.BarcodeGroups; q = q.Where(w => w.BarcodeID == id); var BarcodeInfoes = await q.ToListAsync(); return BarcodeInfoes; } /// <summary> /// 用GroupID取條碼關聯資料檔 /// </summary> /// <param name="id">GroupID</param> /// <returns></returns> // GET: api/BarcodeGroups/5 [HttpGet("GroupID/{id}")] public async Task<ActionResult<IEnumerable<BarcodeGroup>>> GetBarcodeGroupByGroupID(int id) { IQueryable<BarcodeGroup> q = _context.BarcodeGroups; q = q.Where(w => w.GroupID == id); var BarcodeInfoes = await q.ToListAsync(); return BarcodeInfoes; } // PUT: api/BarcodeGroups/5 // To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://go.microsoft.com/fwlink/?linkid=2123754. [HttpPut("{id}")] public async Task<IActionResult> PutBarcodeGroup(int id, BarcodeGroup barcodeGroup) { if (id != barcodeGroup.GroupID) { return BadRequest(); } _context.Entry(barcodeGroup).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BarcodeGroupExists(id)) { return NotFound(); } else { throw; } } return NoContent(); } // POST: api/BarcodeGroups // To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://go.microsoft.com/fwlink/?linkid=2123754. [HttpPost] public async Task<ResultModel<BarcodeGroup>> PostBarcodeGroup([FromBody] BarcodeGroup barcodeGroup) { ResultModel<BarcodeGroup> result = new ResultModel<BarcodeGroup>(); if (barcodeGroup.GroupID == 0) { Helper helper = new Helper(_context); barcodeGroup.GroupID = helper.GetIDKey("GROUP_ID").Result; } _context.BarcodeGroups.Add(barcodeGroup); try { await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } catch (Exception ex) { result.Success = false; result.Msg = ex.InnerException.Message; } return result; } /// <summary> /// 用GroupID刪除條碼關聯資料檔 /// </summary> /// <param name="id"></param> /// <returns></returns> // DELETE: api/BarcodeGroups/5 [HttpDelete("{id}")] public async Task<ResultModel<BarcodeGroup>> DeleteBarcodeGroupByGroupID(int id) { ResultModel<BarcodeGroup> result = new ResultModel<BarcodeGroup>(); var barcodeGroup = await _context.BarcodeGroups.Where(w => w.GroupID == id).ToListAsync(); try { _context.BarcodeGroups.RemoveRange(barcodeGroup); await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } catch (Exception ex) { result.Success = false; result.Msg = ex.InnerException.Message; } return result; } private bool BarcodeGroupExists(int id) { return _context.BarcodeGroups.Any(e => e.GroupID == id); } } }