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);
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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));
        }