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) )); }