public async Task <IActionResult> Edit(int id) { ViewData["Title"] = applicationPersister.GetTitoloApp(); CostoServizioEditInputModel inputModel = await costiservizi.GetCostoServizioForEditingAsync(id); return(View(inputModel)); }
public async Task <IActionResult> Edit(CostoServizioEditInputModel inputModel) { if (ModelState.IsValid) { CostoServizioDetailViewModel costoservizio = await costiservizi.EditCostoServizioAsync(inputModel); TempData["ConfirmationMessage"] = "I dati sono stati aggiornati con successo"; return(RedirectToAction(nameof(Detail), new { id = inputModel.Id })); } ViewData["Title"] = applicationPersister.GetTitoloApp(); return(View(inputModel)); }
public async Task <CostoServizioEditInputModel> GetCostoServizioForEditingAsync(int id) { IQueryable <CostoServizioEditInputModel> queryLinq = dbContext.Costi .AsNoTracking() .Where(costo => costo.Id == id) .Select(costo => costo.ToCostoServizioEditInputModel()); CostoServizioEditInputModel viewModel = await queryLinq.FirstOrDefaultAsync(); if (viewModel == null) { logger.LogWarning("Costo del servizio {id} non trovato", id); throw new CostoServizioNotFoundException(id); } return(viewModel); }
public async Task <CostoServizioDetailViewModel> EditCostoServizioAsync(CostoServizioEditInputModel inputModel) { Costo costo = await dbContext.Costi.FindAsync(inputModel.Id); if (costo == null) { logger.LogWarning("Costo del servizio {id} non trovato", inputModel.Id); throw new CostoServizioNotFoundException(inputModel.Id); } costo.ChangeTipoServizio(inputModel.TipoServizio); costo.ChangeCostoFisso(inputModel.CostoFisso); costo.ChangeCostoKm(inputModel.CostoKm); costo.ChangeSecondoTrasportato(inputModel.SecondoTrasportato); costo.ChangeFermoMacchina(inputModel.FermoMacchina); costo.ChangeAccompagnatore(inputModel.Accompagnatore); costo.ChangeScontoSoci(inputModel.ScontoSoci); await dbContext.SaveChangesAsync(); return(costo.ToCostoServizioDetailViewModel()); }