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.BAS; using AMESCoreStudio.WebApi.Models.AMES; using AMESCoreStudio.CommonTools.Result; namespace AMESCoreStudio.WebApi.Controllers.BAS { /// <summary> /// 維修責任單位维护 /// </summary> [Route("api/[controller]")] [ApiController] public class RepairResponsibleUnitsesController : ControllerBase { private readonly AMESContext _context; /// <summary> /// /// </summary> /// <param name="context"></param> public RepairResponsibleUnitsesController(AMESContext context) { _context = context; } /// <summary> /// 获取維修責任單位资料 /// </summary> /// <returns></returns> // GET: api/RepairResponsibleUnitses [HttpGet] public async Task<ActionResult<IEnumerable<RepairResponsibleUnits>>> GetRepairResponsibleUnits() { IQueryable<RepairResponsibleUnits> q = _context.RepairResponsibleUnitses; q = q.OrderBy(p => p.RRID); var RepairResponsibleUnits = await q.ToListAsync(); return RepairResponsibleUnits; //return await _context.RepairResponsibleUnits.ToListAsync(); } /// <summary> /// 用ID获取維修責任單位资料 /// </summary> /// <param name="id"></param> /// <returns></returns> // GET: api/RepairResponsibleUnitses/5 [HttpGet("{id}")] public async Task<ActionResult<IEnumerable<RepairResponsibleUnits>>> GetRepairResponsibleUnits(int id) { IQueryable<RepairResponsibleUnits> q = _context.RepairResponsibleUnitses; q = q.Where(p => p.RRID.Equals(id)); var repairResponsibleUnits = await q.ToListAsync(); if (repairResponsibleUnits == null) { return NotFound(); } return repairResponsibleUnits; } /// <summary> /// 用維修原因获取維修責任單位资料 /// </summary> /// <param name="no">維修原因代碼</param> /// <returns></returns> // GET: api/RepairResponsibleUnitses/5 [HttpGet("Query/{no}")] public async Task<ActionResult<IEnumerable<RepairResponsibleUnits>>> GetRepairResponsibleUnitsByReasonNo(string no) { IQueryable<RMAReason> q1 = _context.RMAReasons; q1 = q1.Where(p => p.RMAReasonNo.Equals(no)); var rmaReason = await q1.ToListAsync(); IQueryable<RepairResponsibleUnits> q = _context.RepairResponsibleUnitses; q = q.Where(p => p.RRID.Equals(rmaReason[0].ResponseDept)); var repairResponsibleUnits = await q.ToListAsync(); if (repairResponsibleUnits == null) { return NotFound(); } return repairResponsibleUnits; } /// <summary> /// 更新維修責任單位资料 /// </summary> /// <param name="id"></param> /// <param name="repairResponsibleUnits"></param> /// <returns></returns> // PUT: api/RepairResponsibleUnitses/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<ResultModel<RepairResponsibleUnits>> PutRepairResponsibleUnits(int id, [FromBody] RepairResponsibleUnits repairResponsibleUnits) { ResultModel<RepairResponsibleUnits> result = new ResultModel<RepairResponsibleUnits>(); if (id != repairResponsibleUnits.RRID) { result.Success = false; result.Msg = "序號錯誤"; return result; } _context.Entry(repairResponsibleUnits).State = EntityState.Modified; try { await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } catch (Exception e) { result.Success = false; result.Msg = e.Message; } return result; } /// <summary> /// 新增維修責任單位资料 /// </summary> /// <param name="repairResponsibleUnits"></param> /// <returns></returns> // POST: api/RepairResponsibleUnitses // 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<RepairResponsibleUnits>> PostRepairResponsibleUnits(RepairResponsibleUnits repairResponsibleUnits) { ResultModel<RepairResponsibleUnits> result = new ResultModel<RepairResponsibleUnits>(); Helper helper = new Helper(_context); repairResponsibleUnits.RRID = helper.GetIDKey("RR_ID").Result; _context.RepairResponsibleUnitses.Add(repairResponsibleUnits); try { await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } catch (Exception e) { result.Success = false; result.Msg = e.Message; } return result; } /// <summary> /// 刪除維修責任單位资料 /// </summary> /// <param name="id"></param> /// <returns></returns> // DELETE: api/RepairResponsibleUnitses/5 [HttpDelete("{id}")] public async Task<ResultModel<RepairResponsibleUnits>> DeleteRepairResponsibleUnits(int id) { ResultModel<RepairResponsibleUnits> result = new ResultModel<RepairResponsibleUnits>(); //var repairResponsibleUnits = await _context.RepairResponsibleUnits.FindAsync(id); var repairResponsibleUnits = await _context.RepairResponsibleUnitses.Where(m => m.RRID == id).FirstOrDefaultAsync(); if (repairResponsibleUnits == null) { result.Success = false; result.Msg = "序號錯誤"; return result; } _context.RepairResponsibleUnitses.Remove(repairResponsibleUnits); try { await _context.SaveChangesAsync(); result.Success = true; result.Msg = "OK"; } catch (Exception e) { result.Success = false; result.Msg = e.Message; } return result; } private bool RepairResponsibleUnitsExists(int id) { return _context.RepairResponsibleUnitses.Any(e => e.RRID == id); } } }