public async Task <IActionResult> Delete([FromRoute] int id) { UserID = Convert.ToInt32(User.FindFirst(JwtRegisteredClaimNames.Sid)?.Value); var fooUser = await _context.LobUsers.Include(x => x.Department).FirstOrDefaultAsync(x => x.Id == UserID); if (fooUser == null) { apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound, ErrorMessageEnum.沒有發現指定的該使用者資料); return(NotFound(apiResult)); } if (!ModelState.IsValid) { apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest, ErrorMessageEnum.傳送過來的資料有問題, exceptionMessage: $"傳送過來的資料有問題 {ModelState}"); return(BadRequest(apiResult)); } var fooInvoiceDetail = await _context.InvoiceDetails .Include(x => x.Invoice) .FirstOrDefaultAsync(x => x.Id == id); if (fooInvoiceDetail == null) { apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound, ErrorMessageEnum.沒有發現指定的發票明細項目); return(NotFound(apiResult)); } _context.InvoiceDetails.Remove(fooInvoiceDetail); await _context.SaveChangesAsync(); InvoiceDetailResponseDTO fooInvoiceDetailResponseDTO = new InvoiceDetailResponseDTO() { Id = fooInvoiceDetail.Id, Cnt = fooInvoiceDetail.Cnt, Flag = fooInvoiceDetail.Flag, PictureName = fooInvoiceDetail.PictureName, Price = fooInvoiceDetail.Price, Qty = fooInvoiceDetail.Qty, SubTotal = fooInvoiceDetail.SubTotal, TDate = fooInvoiceDetail.TDate, Memo = fooInvoiceDetail.Memo, Invoice = new InvoiceDTO() { Id = fooUser.Id } }; apiResult = APIResultFactory.Build(true, StatusCodes.Status202Accepted, ErrorMessageEnum.None, payload: fooInvoiceDetailResponseDTO); return(Accepted(apiResult)); }
public async Task <IActionResult> Get([FromRoute] int invoiceid) { var claimSID = User.FindFirst(JwtRegisteredClaimNames.Sid)?.Value; if (claimSID == null) { apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest, ErrorMessageEnum.杖中沒有發現指定使用者ID); return(BadRequest(apiResult)); } UserID = Convert.ToInt32(claimSID); var fooUser = await _context.LobUsers.Include(x => x.Department).FirstOrDefaultAsync(x => x.Id == UserID); if (fooUser == null) { apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound, ErrorMessageEnum.沒有發現指定的該使用者資料); return(NotFound(apiResult)); } if (!ModelState.IsValid) { apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest, ErrorMessageEnum.傳送過來的資料有問題, exceptionMessage: $"傳送過來的資料有問題 {ModelState}"); return(BadRequest(apiResult)); } var invoiceOnDB = await _context.Invoices .Include(x => x.Details) .FirstOrDefaultAsync(x => x.Id == invoiceid); if (invoiceOnDB == null) { apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound, ErrorMessageEnum.沒有發現指定的發票); return(NotFound(apiResult)); } List <InvoiceDetailResponseDTO> fooInvoiceDetailResponseDTO = new List <InvoiceDetailResponseDTO>(); foreach (var item in invoiceOnDB.Details) { InvoiceDetailResponseDTO fooObject = new InvoiceDetailResponseDTO() { Id = item.Id, Invoice = new InvoiceDTO() { Id = item.Invoice.Id }, Cnt = item.Cnt, Flag = item.Flag, Memo = item.Memo, PictureName = item.PictureName, Price = item.Price, Qty = item.Qty, SubTotal = item.SubTotal, TDate = item.TDate, }; fooInvoiceDetailResponseDTO.Add(fooObject); } apiResult = APIResultFactory.Build(true, StatusCodes.Status200OK, ErrorMessageEnum.None, payload: fooInvoiceDetailResponseDTO); return(Ok(apiResult)); }