public async Task <ClienteDetailViewModel> EditClienteAsync(ClienteEditInputModel inputModel) { Cliente cliente = await dbContext.Clienti.FindAsync(inputModel.Id); if (cliente == null) { logger.LogWarning("Cliente {id} non trovato", inputModel.Id); throw new ClienteNotFoundException(inputModel.Id); } cliente.ChangeRagioneSociale(inputModel.RagioneSociale); cliente.ChangeIndirizzo(inputModel.Indirizzo); cliente.ChangeComune(inputModel.Comune); cliente.ChangeCap(inputModel.Cap); cliente.ChangeProvincia(inputModel.Provincia); cliente.ChangeTelefono(inputModel.Telefono); cliente.ChangeFax(inputModel.Fax); cliente.ChangeCodiceFiscale(inputModel.CodiceFiscale); cliente.ChangePartitaIva(inputModel.PartitaIva); cliente.ChangeSpese(inputModel.Spese); await dbContext.SaveChangesAsync(); return(cliente.ToClienteDetailViewModel()); }
public async Task <IActionResult> Edit(int id) { ViewData["Title"] = applicationPersister.GetTitoloApp(); ClienteEditInputModel inputModel = await clienti.GetClienteForEditingAsync(id); return(View(inputModel)); }
public async Task <IActionResult> Edit(ClienteEditInputModel inputModel) { if (ModelState.IsValid) { ClienteDetailViewModel cliente = await clienti.EditClienteAsync(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 <ClienteEditInputModel> GetClienteForEditingAsync(int id) { IQueryable <ClienteEditInputModel> queryLinq = dbContext.Clienti .AsNoTracking() .Where(cliente => cliente.Id == id) .Select(cliente => cliente.ToClienteEditInputModel()); ClienteEditInputModel viewModel = await queryLinq.FirstOrDefaultAsync(); if (viewModel == null) { logger.LogWarning("Cliente {id} non trovato", id); throw new ClienteNotFoundException(id); } return(viewModel); }