public async Task <SocioDetailViewModel> EditSocioAsync(SocioEditInputModel inputModel)
        {
            Socio socio = await dbContext.Soci.FindAsync(inputModel.Id);

            if (socio == null)
            {
                logger.LogWarning("Socio {id} non trovato", inputModel.Id);
                throw new SocioNotFoundException(inputModel.Id);
            }

            socio.ChangeTessera(inputModel.Tessera);
            socio.ChangeNominativo(inputModel.Nominativo);
            socio.ChangeIndirizzo(inputModel.Indirizzo);
            socio.ChangeCap(inputModel.Cap);
            socio.ChangeComune(inputModel.Comune);
            socio.ChangeProvincia(inputModel.Provincia);
            socio.ChangeLuogoNascita(inputModel.LuogoNascita);
            socio.ChangeDataNascita(inputModel.DataNascita);
            socio.ChangeCodiceFiscale(inputModel.CodiceFiscale);
            socio.ChangeTelefono(inputModel.Telefono);
            socio.ChangeEmail(inputModel.Email);
            socio.ChangeDataTesseramento(inputModel.DataTesseramento);
            socio.ChangeTrattamentoDati(inputModel.TrattamentoDati);
            socio.ChangeProfessione(inputModel.Professione);
            socio.ChangeZona(inputModel.Zona);

            await dbContext.SaveChangesAsync();

            return(socio.ToSocioDetailViewModel());
        }
Esempio n. 2
0
        public async Task <IActionResult> Edit(int id)
        {
            ViewData["Title"] = applicationPersister.GetTitoloApp();
            SocioEditInputModel inputModel = await soci.GetSocioForEditingAsync(id);

            return(View(inputModel));
        }
Esempio n. 3
0
        public async Task <IActionResult> Edit(SocioEditInputModel inputModel)
        {
            if (ModelState.IsValid)
            {
                SocioDetailViewModel socio = await soci.EditSocioAsync(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 <SocioEditInputModel> GetSocioForEditingAsync(int id)
        {
            IQueryable <SocioEditInputModel> queryLinq = dbContext.Soci
                                                         .AsNoTracking()
                                                         .Where(socio => socio.Id == id)
                                                         .Select(socio => socio.ToSocioEditInputModel());

            SocioEditInputModel viewModel = await queryLinq.FirstOrDefaultAsync();

            if (viewModel == null)
            {
                logger.LogWarning("Socio {id} non trovato", id);
                throw new SocioNotFoundException(id);
            }

            return(viewModel);
        }