public async Task <IActionResult> Detail(int id)
        {
            ViewData["Title"] = applicationPersister.GetTitoloApp();
            AssociazioneDetailViewModel viewModel = await associazioni.GetAssociazioneAsync(id);

            return(View(viewModel));
        }
        public async Task <IActionResult> Edit(AssociazioneEditInputModel inputModel)
        {
            if (ModelState.IsValid)
            {
                AssociazioneDetailViewModel associazione = await associazioni.EditAssociazioneAsync(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 <AssociazioneDetailViewModel> GetAssociazioneAsync(int id)
        {
            IQueryable <AssociazioneDetailViewModel> queryLinq = dbContext.Associazioni
                                                                 .AsNoTracking()
                                                                 .Where(associazione => associazione.Id == id)
                                                                 .Select(associazione => associazione.ToAssociazioneDetailViewModel());

            AssociazioneDetailViewModel viewModel = await queryLinq.FirstOrDefaultAsync();

            if (viewModel == null)
            {
                logger.LogWarning("Associazione {id} non trovata", id);
                throw new AssociazioneNotFoundException(id);
            }

            return(viewModel);
        }