public static IndexViewModel ToViewModel(Abbonamenti abbonamento, GymDataContest context)
            {
                var            utente = context.Utenti.Where(x => x.Id == abbonamento.UtenteId).FirstOrDefault();
                IndexViewModel model  = new IndexViewModel
                {
                    Id          = abbonamento.Id,
                    Abbonamenti = context.TipiAbbonamenti.Where(x => x.Id == abbonamento.TipoAbbonamentoId).FirstOrDefault().Descrizione,
                    Utente      = utente.Nome + " " + utente.Cognome,
                    Rinnovo     = abbonamento.IsRinnovo,
                    DataInizio  = abbonamento.InizioAbbonamento,
                    DataFine    = abbonamento.FineAbbonamento,
                    Attivo      = abbonamento.IsActive
                };

                return(model);
            }
        public async Task <IActionResult> Create(Abbonamenti abbonamenti)
        {
            if (ModelState.IsValid)
            {
                if (abbonamenti.IsActive == true)
                {
                    var vecchio = GetVecchioAbbonamento(abbonamenti.UtenteId);
                    if (vecchio != null)
                    {
                        _context.Update(vecchio);
                    }
                }
                _context.Add(abbonamenti);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(abbonamenti));
        }
        public async Task <IActionResult> Edit(int id, Abbonamenti abbonamenti)
        {
            if (id != abbonamenti.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (abbonamenti.IsActive == true)
                    {
                        var vecchio = GetVecchioAbbonamento(abbonamenti.UtenteId);
                        if (vecchio != null)
                        {
                            _context.Update(vecchio);
                        }
                    }
                    _context.Update(abbonamenti);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!AbbonamentiExists(abbonamenti.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            SetCommonViewData();
            return(View(abbonamenti));
        }