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; using Dapper; using System.Data; using AMESCoreStudio.WebApi.Extensions; namespace AMESCoreStudio.WebApi.Controllers.AMES { /// <summary> /// 錫膏使用紀錄資料檔 /// </summary> [Route("api/[controller]")] [ApiController] public class SolderPasteRecordController : ControllerBase { private readonly AMESContext _context; public SolderPasteRecordController(AMESContext context) { _context = context; } // GET: api/SolderPasteRecord [HttpGet] public async Task<ActionResult<IEnumerable<SolderPasteRecord>>> GetSolderPasteRecords() { return await _context.SolderPasteRecords.ToListAsync(); } // GET: api/SolderPasteRecord/5 [HttpGet("{id}")] public async Task<ActionResult<SolderPasteRecord>> GetSolderPasteRecord(int id) { var solderPasteRecord = await _context.SolderPasteRecords.FindAsync(id); if (solderPasteRecord == null) { return NotFound(); } return solderPasteRecord; } /// <summary> /// 更新錫膏使用紀錄資料檔 /// </summary> /// <param name="solderPasteRecord"></param> /// <returns></returns> [HttpPut] public async Task<ResultModel<SolderPasteRecord>> PutSolderPasteRecord(SolderPasteRecord solderPasteRecord) { ResultModel<SolderPasteRecord> result = new ResultModel<SolderPasteRecord>(); _context.Entry(solderPasteRecord).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; } /// <summary> /// 新增錫膏使用紀錄資料檔 /// </summary> /// <param name="solderPasteRecords">models</param> /// <returns></returns> [HttpPost] public async Task<ResultModel<SolderPasteRecord>> PostSolderPasteRecord(List<SolderPasteRecord> solderPasteRecords) { ResultModel<SolderPasteRecord> result = new ResultModel<SolderPasteRecord>(); try { _context.SolderPasteRecords.AddRange(solderPasteRecords); await _context.SaveChangesAsync(); // 更新基本檔的狀態 List<SolderPasteInfo> solderPasteInfos = solderPasteRecords.Select(s => new SolderPasteInfo { SolderPasteID = s.SolderPasteID, Status = s.Status, UpdateUserID =s.CreateUserID }).ToList(); var query = @" UPDATE JHAMES.SOLDER_PASTE_INFO SET STATUS = :Status , UPDATE_USERID = :UpdateUserID , UPDATE_DATE = sysdate WHERE SOLDER_PASTE_ID = :SolderPasteID "; _context.Database.DapperExecute(query, solderPasteInfos); result.Success = true; result.Msg = "OK"; } catch (Exception ex) { result.Success = false; result.Msg = ex.InnerException.Message; } return result; } // DELETE: api/SolderPasteRecord/5 [HttpDelete("{id}")] public async Task<ActionResult<SolderPasteRecord>> DeleteSolderPasteRecord(int id) { var solderPasteRecord = await _context.SolderPasteRecords.FindAsync(id); if (solderPasteRecord == null) { return NotFound(); } _context.SolderPasteRecords.Remove(solderPasteRecord); await _context.SaveChangesAsync(); return solderPasteRecord; } } }