public async Task <IActionResult> Edit(int id, [Bind("AntrenamentModelID,Data,OraStart,OraStop,IsPersonalTraining,Grupa")] AntrenamentModel antrenamentModel)
        {
            if (id != antrenamentModel.AntrenamentModelID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(antrenamentModel);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!AntrenamentModelExists(antrenamentModel.AntrenamentModelID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(antrenamentModel));
        }
 // Is Abonament coupled to Antrenament?
 public bool IsAbonamentInAntrenament(AbonamentModel abonament, AntrenamentModel antrenament, ReportDbContext context)
 {
     if (context.PersAntrAbTables.FirstOrDefault(elem => elem.AbonamentModelID == abonament.AbonamentModelID &&
                                                 elem.Antrenament.AntrenamentModelID == antrenament.AntrenamentModelID) != null)
     {
         return(true);
     }
     return(false);
 }
        public async Task <IActionResult> Create([Bind("AntrenamentModelID,Data,OraStart,OraStop,IsPersonalTraining,Grupa")] AntrenamentModel antrenamentModel)
        {
            if (ModelState.IsValid)
            {
                _context.Add(antrenamentModel);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(IndexZilnic)));
            }
            return(View(antrenamentModel));
        }
        //Get List Of Person per Antrenament
        public List <PersoanaModel> GetListOfPersonByAntrenament(AntrenamentModel antrenament, ReportDbContext context)
        {
            List <PersoanaModel> listaPersoanePerAntrenament = new List <PersoanaModel>();

            var persoaneGasite = context.PersAntrAbTables.Where(p => p.AntrenamentModelID == antrenament.AntrenamentModelID).Include(o => o.Persoana).ToList();

            if (persoaneGasite != null)
            {
                foreach (var item in persoaneGasite)
                {
                    listaPersoanePerAntrenament.Add(item.Persoana);
                }
            }

            return(listaPersoanePerAntrenament);
        }
        // Remove Person From Atrenament
        // Remove Person Atrenament Abonament From PersAntrAbTable Table
        // Remove From aboanament 1 sedinta efectuata
        public string RemovePersonFromAntrenament(AntrenamentModel antrenament, int abonamentID, ReportDbContext context)
        {
            PersoanaModel persoana        = GetAbonamentByAbID(abonamentID, context).PersoanaModel;
            var           persAntrAbTable = context.PersAntrAbTables
                                            .Include(t => t.Abonament)
                                            .Include(a => a.Persoana)
                                            .Include(aa => aa.Antrenament)
                                            .FirstOrDefault(m => m.AntrenamentModelID == antrenament.AntrenamentModelID && m.AbonamentModelID == abonamentID);

            if (persAntrAbTable == null)
            {
                return($"Nu s-a gasit persoana cu numele: {persoana.NumeComplet} in antrenament!");
            }
            context.PersAntrAbTables.Remove(persAntrAbTable);
            context.SaveChanges();
            UpdateNrSedinteEfAbonamentbyID(-1, abonamentID, context); // Update nr sedinte efectuate abonament
            return($"Persoana {persoana.NumeComplet} a fost stearsa din antrenament");
        }
        // Add Person To Atrenament
        // Add Person Atrenament Abonament to PersAntrAbTable Table
        // Add To aboanament 1 sedinta efectuata
        public string AddPersonToAntrenament(AntrenamentModel antrenament, int abonamentID, ReportDbContext context)
        {
            AbonamentModel ab = GetAbonamentByAbID(abonamentID, context);

            if (!context.PersAntrAbTables.Any(item => item.AntrenamentModelID == antrenament.AntrenamentModelID &&
                                              item.AbonamentModelID == abonamentID))
            {
                if (ab.StareAbonament == StareAbonament.Finalizat)
                {
                    return($"Persoana {ab.PersoanaModel.NumeComplet} are abonamentul finalizat!!!");
                }

                context.PersAntrAbTables.Add(new PersAntrAbTable
                {
                    AntrenamentModelID = antrenament.AntrenamentModelID,
                    AbonamentModelID   = abonamentID,
                    PersoanaModelID    = (int)GetAbonamentByAbID(abonamentID, context).PersoanaModelID
                });
                context.SaveChanges();
                UpdateNrSedinteEfAbonamentbyID(1, abonamentID, context); // Update nr sedinte efectuate abonament
                return($"Persoana {ab.PersoanaModel.NumeComplet} a fost adaugata la antrenament!");
            }
            return($"Persoana {ab.PersoanaModel.NumeComplet} este deja adaugata in antrenament");
        }