public async Task <IActionResult> Edit(BeneficiarioEditInputModel inputModel) { if (ModelState.IsValid) { //SE L'UTENTE HA CAMBIATO BENEFICIARIO VERIFICO CHE NON SIA GIA' ESISTENTE if (inputModel.Beneficiario != Beneficiario) { if (await service.VerificationExistenceAsync(inputModel.Beneficiario)) { ViewData["Title"] = "Aggiorna beneficiario".ToUpper(); ModelState.AddModelError("key", "Il beneficiario è già esistente. Scegli un nome diverso."); return(View(inputModel)); } } await service.EditBeneficiarioAsync(inputModel); Beneficiario = String.Empty; TempData["Message"] = "Aggiornamento effettuato correttamente".ToUpper(); return(RedirectToAction("Index")); } else { ViewData["Title"] = "Aggiorna beneficiario".ToUpper(); return(View(inputModel)); } }
public async Task <BeneficiarioViewModel> EditBeneficiarioAsync(BeneficiarioEditInputModel inputModel) { Beneficiario beneficiario = await dbContext.Beneficiari.FindAsync(inputModel.IDBeneficiario); if (beneficiario == null) { throw new BeneficiarioNotFoundException(inputModel.IDBeneficiario); } try { //Mapping beneficiario.Sbeneficiario = inputModel.Beneficiario; beneficiario.Descrizione = inputModel.Descrizione; beneficiario.Email = inputModel.Email; beneficiario.Telefono = inputModel.Telefono; beneficiario.SitoWeb = inputModel.SitoWeb; dbContext.Update(beneficiario); await dbContext.SaveChangesAsync(); } catch (Exception ex) { throw new Exception(ex.Message); } return(BeneficiarioViewModel.FromEntity(beneficiario)); }
public async Task <BeneficiarioViewModel> EditBeneficiarioAsync(BeneficiarioEditInputModel inputModel) { BeneficiarioViewModel viewModel = await beneficiarioService.EditBeneficiarioAsync(inputModel); memoryCache.Remove($"Beneficiario{inputModel.IDBeneficiario}"); return(viewModel); }
public async Task <BeneficiarioEditInputModel> GetBeneficiarioForEditingAsync(int id) { logger.LogInformation("Ricevuto identificativo beneficiario {id}", id); IQueryable <BeneficiarioEditInputModel> queryLinq = dbContext.Beneficiari .AsNoTracking() .Where(beneficiario => beneficiario.IDBeneficiario == id) .Select(beneficiario => BeneficiarioEditInputModel.FromEntity(beneficiario)); //Usando metodi statici come FromEntity, la query potrebbe essere inefficiente. Mantenere il mapping nella lambda oppure usare un extension method personalizzato BeneficiarioEditInputModel viewModel = await queryLinq.FirstOrDefaultAsync(); if (viewModel == null) { logger.LogWarning("Beneficiario {id} not found", id); throw new BeneficiarioNotFoundException(id); } return(viewModel); }