public async Task <InvoiceDto> Update(
            int id,
            [FromBody] InvoiceUpdateDto updateInvoiceDto,
            [RequestBusiness] Business business)
        {
            if (!await invoiceAuthorize.CanUpdateInvoice(User, id, updateInvoiceDto))
            {
                throw new Forbidden();
            }

            var invoice = await invoiceService.GetByBusiness(business.Id, id);

            // Päivitä laskua dtosta
            updateInvoiceDto.UpdateInvoice(invoice);
            await invoiceService.Update(invoice);

            // Palauta päivitetty lasku, kierretään tietokannan kautta jotta
            // data päivittyy oikein
            return(InvoiceDto.FromInvoice(
                       await invoiceService.GetByBusiness(business.Id, id)
                       ));
        }
        public async Task <InvoiceDto> Update(
            int id,
            [FromBody] InvoiceUpdateDto updateInvoiceDto)
        {
            // Tässä esimerkissä businessId on vakio, seuraavassa esimerkissä se
            // haetaan käyttäjän tiedoista
            var businessId = 1;
            var invoice    = await invoiceService.GetByBusiness(businessId, id);

            // Tästä puuttuu oikeustarkistus että client Id on tämän yrityksen
            // asiakkaan ID. Sekä tarkistus että laskurivien ID:t eivät vaihdu
            // laskulta toiselle. Oikeustarkistukset tehdään seuraavassa
            // esimerkissä

            // Päivitä laskua dtosta
            updateInvoiceDto.UpdateInvoice(invoice);
            await invoiceService.Update(invoice);

            // Palauta päivitetty lasku, kierretään tietokannan kautta jotta
            // data päivittyy oikein
            return(InvoiceDto.FromInvoice(
                       await invoiceService.GetByBusiness(businessId, id)
                       ));
        }