public async Task<ActionResult<InvoiceLineResponse>> Put(int id, [FromBody] InvoiceLineResponse input, CancellationToken ct = default) { try { if (input == null) return BadRequest(); if (await _chinookSupervisor.GetInvoiceLineByIdAsync(id, ct) == null) { return NotFound(); } var errors = JsonConvert.SerializeObject(ModelState.Values .SelectMany(state => state.Errors) .Select(error => error.ErrorMessage)); Debug.WriteLine(errors); if (await _chinookSupervisor.UpdateInvoiceLineAsync(input, ct)) { return Ok(input); } return StatusCode(500); } catch (Exception ex) { return StatusCode(500, ex); } }
public async Task<ActionResult<InvoiceLineResponse>> Post([FromBody] InvoiceLineResponse input, CancellationToken ct = default) { try { if (input == null) return BadRequest(); return StatusCode(201, await _chinookSupervisor.AddInvoiceLineAsync(input, ct)); } catch (Exception ex) { return StatusCode(500, ex); } }
public async Task <InvoiceLineResponse> AddInvoiceLineAsync(InvoiceLineResponse newInvoiceLineViewModel, CancellationToken ct = default) { var invoiceLine = new InvoiceLine { InvoiceId = newInvoiceLineViewModel.InvoiceId, TrackId = newInvoiceLineViewModel.TrackId, UnitPrice = newInvoiceLineViewModel.UnitPrice, Quantity = newInvoiceLineViewModel.Quantity }; invoiceLine = await _invoiceLineRepository.AddAsync(invoiceLine, ct); newInvoiceLineViewModel.InvoiceLineId = invoiceLine.InvoiceLineId; return(newInvoiceLineViewModel); }
public async Task <bool> UpdateInvoiceLineAsync(InvoiceLineResponse invoiceLineViewModel, CancellationToken ct = default) { var invoiceLine = await _invoiceLineRepository.GetByIdAsync(invoiceLineViewModel.InvoiceId, ct); if (invoiceLine == null) { return(false); } invoiceLine.InvoiceLineId = invoiceLineViewModel.InvoiceLineId; invoiceLine.InvoiceId = invoiceLineViewModel.InvoiceId; invoiceLine.TrackId = invoiceLineViewModel.TrackId; invoiceLine.UnitPrice = invoiceLineViewModel.UnitPrice; invoiceLine.Quantity = invoiceLineViewModel.Quantity; return(await _invoiceLineRepository.UpdateAsync(invoiceLine, ct)); }